import rhinoscriptsyntax as rs import random allRhinos = rs.AllObjects () rs.DeleteObjects( allRhinos) rs.EnableRedraw (0) ################################### ###02_uebung ### Langmann_Sven ### 20241011 ################################### import random, time, sys ### #sys.path.append("P:/") ### add path where "DM_lib.py" can be found !!! #sys.path.append("P:/DM2/") ### add path where "DM_lib.py" can be found !!! sys.path.append("C:\Users\Sven\OneDrive\Tu Graz\DM2")### add path where "DM_lib.py" can be found !!! import DM_lib as dm ### reload(dm) ################################## def DrawPointSphere(rad, anz): dm.eA() #rad = 5.0 vec = [rad, 0, 0] vecX = rs.VectorRotate (vec, 90,[0,0,1] ) #### center = [0, 0, 0] #anz = 500 deltaAngle = 360/anz #### for i in range(anz): vecX = rs.VectorRotate( vec, deltaAngle*i, dm.pntRandCoords(-1, 1)[0] ) #vecX = rs.VectorScale( vecX, random.uniform(0.7, 1) ) vecX = rs.VectorAdd( vecX, center ) rs.AddPoint( vecX ) vecS.append(vecX) def DrawCube(rad): rad= rad-2 cords = [] cords.append( [0,0,0] ) center= [0,0,0] #vec= [] vecC.append( rs.VectorAdd( center, rs.VectorScale( [rad,rad,-rad], 1))) #=Vector A =0 vecC.append( rs.VectorAdd( center, rs.VectorScale( [-rad,rad,-rad], 1))) #=Vector B =1 vecC.append( rs.VectorAdd( center, rs.VectorScale( [rad,-rad,-rad], 1))) #=Vector C =2 vecC.append( rs.VectorAdd( center, rs.VectorScale( [-rad,-rad,-rad], 1)))#=Vector D =3 ### vecC.append( rs.VectorAdd( center, rs.VectorScale( [rad,rad,rad], 1))) #=Vector E =4 vecC.append( rs.VectorAdd( center, rs.VectorScale( [-rad,rad,rad], 1))) #=Vector F =5 vecC.append( rs.VectorAdd( center, rs.VectorScale( [rad,-rad,rad], 1))) #=Vector G =6 vecC.append( rs.VectorAdd( center, rs.VectorScale( [-rad,-rad,rad], 1))) #=Vector H =7 ### baseCrv = rs.AddCurve( [vecC[0], vecC[1], vecC[3], vecC[2], vecC[0]], 1 ) topCrv = rs.AddCurve( [vecC[4], vecC[5], vecC[7], vecC[6], vecC[4]], 1 ) rightCrv = rs.AddCurve( [vecC[0], vecC[4], vecC[6], vecC[2], vecC[0]], 1 ) leftpCrv = rs.AddCurve( [vecC[1], vecC[5], vecC[7], vecC[3], vecC[1]], 1 ) ### for i,car in enumerate(["A","B","C","D","E","F","G","H"]): rs.AddTextDot( car, [vecC[0], vecC[1], vecC[2], vecC[3],vecC[4], vecC[5], vecC[6], vecC[7]][i] ) rs.ObjectColor(rs.AllObjects()[5], [200,20,20] ) return baseCrv, topCrv; def DrawDiff(baseCrv, topCrv, anz): coords = rs.DivideCurve(baseCrv, anz, 0) for y,corC in enumerate(coords): rs.ObjectColor( rs.AddPoint( corC ), [10,10,120] ) #coords += rs.DivideCurve(topCrv, anz, 0) ran = random.uniform(4,16) ### #cen = dm.pntInbetween(vecC[0], vecC[6]) for i,corS in enumerate(vecS): rs.ObjectColor( rs.AddPoint( corS ), [200,20,200] ) #for y,corC in enumerate(coords): #vec1 = rs.VectorSubtract( corS, corC ) #unitVec = rs.VectorUnitize( vec1 ) #rs.ObjectColor( rs.AddPoint( corS ), [200,20,200] ) if( __name__ == "__main__" ): vecS= [] anz = 500 rad = 10 DrawPointSphere(rad, anz) vecC= [] baseCrv, topCrv = DrawCube(rad) DrawDiff(baseCrv, topCrv, anz)