#DM2 Hausuebung 04 #Melissa Schnell #Gruppe Gruber 01 import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/WWW\kleeblaettchen04") ### add path where "DM_lib.py" can be found !!! import DM_lib as dm ### reload(dm) ############################## rs.EnableRedraw(0) dm.eA() ###Cube laenge = 8 rotate = 0 def DrawCube(laenge, rotate=0): vecC = [] center = [0,0,0] vecC.append( rs.VectorAdd( center, rs.VectorScale([laenge, laenge, -laenge],1))) vecC.append( rs.VectorAdd( center, rs.VectorScale([-laenge, laenge, -laenge],1))) vecC.append( rs.VectorAdd( center, rs.VectorScale([laenge, -laenge, -laenge],1))) vecC.append( rs.VectorAdd( center, rs.VectorScale([-laenge, -laenge, -laenge],1))) vecC.append( rs.VectorAdd( center, rs.VectorScale([laenge, laenge, laenge],1))) vecC.append( rs.VectorAdd( center, rs.VectorScale([-laenge, laenge, laenge],1))) vecC.append( rs.VectorAdd( center, rs.VectorScale([laenge, -laenge, laenge],1))) vecC.append( rs.VectorAdd( center, rs.VectorScale([-laenge, -laenge, laenge],1))) Crv_U = rs.AddCurve( [vecC[0],vecC[1],vecC[3],vecC[2],vecC[0]], 1) Crv_O = rs.AddCurve( [vecC[4],vecC[5],vecC[7],vecC[6],vecC[4]], 1) return vecC #DrawCube(laenge) ###sphere1 rad1 = 2.5 anz = 1000 def DrawPointSphere(rad=2.5, anz=1000, center= [0, 0, 5]): vecInnen= [] vecAussen= [] vec = [rad, 0, 0] print "vec", rs.VectorLength( vec ) ##center1 = [0, 0, 5] #ang1 = 360/10 for i in range(anz): vecX1 = rs.VectorScale([rad, 0, 0], random.uniform(0, rad) ) vecX1 = [random.uniform(0, rad), 0, 0] vecX1 = rs.VectorRotate( vecX1, random.uniform(0, 360), dm.pntRandCoords(-1, 1)[0] ) vecX1 = rs.VectorAdd( vecX1, center ) if vecX1[0] > laenge or vecX1[0] < -laenge or vecX1[1] > laenge or vecX1[1] < -laenge or vecX1[2] > laenge or vecX1[2] < -laenge: vecAussen.append(vecX1) else: vecInnen.append(vecX1) #pointsAussen = rs.AddPoints(vecAussen) #pointsInnen = rs.AddPoints(vecInnen) #rs.ObjectColor( pointsAussen, [200,200,200] ) #rs.Redraw() return [vecAussen, vecInnen] rad = laenge*1 print "rad", rad allVecInnen = [] vecAussen = DrawPointSphere(rad, anz=10001, center= [laenge, laenge, -laenge])[0] vecInnen = DrawPointSphere(rad, anz=10001, center= [laenge, laenge, -laenge])[1] pointsAussen = rs.AddPoints(vecAussen) pointsInnen = rs.AddPoints(vecInnen) rs.ObjectColor( pointsAussen, [0,0,0] ) rs.ObjectColor( pointsInnen, [255,0,128]) allVecInnen.extend(vecInnen) rs.Redraw() if 1: vecAussen = DrawPointSphere(rad, anz=10001, center= [-laenge, laenge, laenge])[0] vecInnen = DrawPointSphere(rad, anz=10001, center= [-laenge, laenge, laenge])[1] pointsAussen = rs.AddPoints(vecAussen) pointsInnen = rs.AddPoints(vecInnen) rs.ObjectColor( pointsAussen, [0,0,0] ) rs.ObjectColor( pointsInnen, [255,0,0]) allVecInnen.extend(vecInnen) rs.Redraw() if 1: vecAussen = DrawPointSphere(rad, anz=10001, center= [-laenge, -laenge, -laenge])[0] vecInnen = DrawPointSphere(rad, anz=10001, center= [-laenge, -laenge, -laenge])[1] pointsAussen = rs.AddPoints(vecAussen) pointsInnen = rs.AddPoints(vecInnen) rs.ObjectColor( pointsAussen, [0,0,0] ) rs.ObjectColor( pointsInnen, [255,127,0]) allVecInnen.extend(vecInnen) rs.Redraw() vecAussen = DrawPointSphere(rad, anz=10001, center= [laenge, -laenge, laenge])[0] vecInnen = DrawPointSphere(rad, anz=10001, center= [laenge, -laenge, laenge])[1] pointsAussen = rs.AddPoints(vecAussen) pointsInnen = rs.AddPoints(vecInnen) rs.ObjectColor( pointsAussen, [0,0,0] ) rs.ObjectColor( pointsInnen, [255,255,0]) allVecInnen.extend(vecInnen) rs.Redraw() random.shuffle( allVecInnen ) linien= rs.AddCurve( allVecInnen, 1 ) rs.ObjectColor(linien, [200,200,200]) DrawPointSphere(rad=2.5, anz=10001, center= [-laenge, laenge, laenge]) DrawPointSphere(rad=2.5, anz=10001, center= [-laenge, -laenge, -laenge]) DrawPointSphere(rad=2.5, anz=10001, center= [laenge, -laenge, laenge]) allPoints = rs.ObjectsByType(1) dm.zA()