#DM_02 #WiSem_24_25 #HUE_03 #Legenstein_Klaus import rhinoscriptsyntax as rs import random, time, sys, math sys.path.append("P:/WWW/soenkele/dm2/lib") sys.path.append("P:/") import DM_lib as dm import math rs.UnitSystem(3) rs.ShowGrid(view=None, show=0) rs.ShowGridAxes(view=None, show=0) rs.ViewDisplayMode(view=None, mode="Wireframe") rs.EnableRedraw(0) rs.DeleteObjects(rs.AllObjects()) dm.PointRadius(displayModeX=0, rad=4, styl=1) dm.printDisplay(state=1, scale=1, thickness=1, color='Display') test = random.choice([0, 1]) print test #sphere center = [0,0,0] anz = 50000 rad = 10 deltaAngle = 360/anz vec = [1, 0,0] sphere_pts = [] sphere_coords = [] for i in range(anz): angX = deltaAngle*i vecX = rs.VectorRotate( vec, angX , [random.uniform(-0.5,0.5),random.uniform(-0.5,0.5),random.uniform(-0.5,0.5)] ) vecX = rs.VectorScale( vecX, rad*1.2) ## random.uniform( 10, rad) ) #vecX = rs.VectorAdd( vecX, center) if i< 10: print rs.VectorLength(vecX) ##pt = rs.AddPoint(vecX) ##sphere_pt.append(pt) sphere_coords.append(vecX) sphere_pts = rs.AddPoints( sphere_coords ) #print sphere_pts[100] #print sphere_coords[100] #cube center = [0,0,0] length = rad+1 edge = rad diagSquare = math.sqrt(length**2 + length**2) diagCube = math.sqrt(diagSquare**2 + length**2) origins = [ [-rad, 0,0], [0,0,0], [-rad, -rad,0], [0, -rad, 0] ] cubeCoords = [] allCubescoords = [] if 1: for zVal in [0, -rad]: for ori in range( 4 ): cubeCoords = [] for i in range(length): for j in range(length): for k in range(length): cor = rs.CreatePoint(i, j, k) #points = rs.AddPoint(pnt) cor = rs.VectorAdd( cor, origins[ori] ) cor = rs.VectorAdd( cor, [0,0,zVal] ) if rs.Distance( [0,0,0],cor ) > rad*(2**0.5): cubeCoords.append( cor ) allCubescoords.append(cubeCoords) # points = rs.AddPoints(cubeCoords) # R = ori*50 # G = abs(zVal*20) # rs.ObjectColor( points, [ R, G, 255-R]) #rs.AddPoints( allCubescoords[0] ) print len(allCubescoords) allNumbers = range(8) random.shuffle(allNumbers) for i in range(6): R=random.randint(100,250) G=random.randint(100,250) B=random.randint(100,250) pnts = rs.AddPoints( allCubescoords[allNumbers[i]] ) rs.ObjectColor(pnts, [R,G,B] ) for j in range(1001): p0 = random.choice(allCubescoords[allNumbers[i]]) p1 = random.choice(allCubescoords[allNumbers[i]]) if rs.Distance(p0,p1)<3: crv = rs.AddCurve( [p0, p1] ) rs.ObjectColor(crv, [R,G,B] ) rs.ObjectPrintWidth( crv, 0.2)