############################## ### DM2_w24 hu_03_setUp ### ### _diag / 2024 10 17 ### ############################## import rhinoscriptsyntax as rs import random, time, sys ### #sys.path.append("P:\WWW\dlng1998") ### add path where "DM_lib.py" can be found !!! import DM_lib as dm ### reload(dm) import math ############################## rs.EnableRedraw dm.eA() ############################## length = 20 #Seitenlaenge Wuerfel diagSquare = math.sqrt(length**2 + length**2) #Diagonale der Grundflaeche (Pythagoras) diagCube = math.sqrt(diagSquare**2 + length**2) #Raumdiagonale #Wuerfel if 1: #if damit man Wuerfel ein/ausblenden kann for i in range(length): #Dreifachschleife fuer Erstellung des Wuerfels for j in range(length): for k in range(length): pnt = rs.CreatePoint(i, j, k) points = rs.AddPoint(pnt) rs.ObjectColor(points, [0, 0, 255]) #Wuerfel einfaerben #Kugel if 1: #if damit man Kugel ein/ausblenden anz = 10000 #Anzahl der Punkte, je hoeher die Anzahl desto dichter wird die Kugel rad = diagCube / 2 # Radius der Kugel ist die halbe Raumdiagonale center = [length / 2, length / 2, length / 2] #Mittelpunkt wird auf den Wuerfelmittelpunkt verschoben deltaAngle = 360/anz #zur Erstellung der Kugel, wie in der letzten Unterrichtseinheit vec = [ 1, 0, 0] for i in range(anz): angX = deltaAngle*i vecX = rs.VectorRotate( vec , angX , [random.uniform(-1,1) , random.uniform(-1,1) , random.uniform(-1,1)] ) #VectorRotate(vector, angle_degrees, axis) Rotationsachse vecX = rs.VectorScale( vecX, random.uniform (5,rad) ) vecX = rs.VectorAdd(vecX, center) rs.AddPoint( vecX )