############################## ### DM2_w24 hu_03_setUp ### ### _diag / 2024 10 17 ### ############################## import rhinoscriptsyntax as rs import random, time, sys import math sys.path.append("P:/WWW/ortii/DM2") import DM_lib as dm rs.UnitSystem(3) rs.ShowGrid(view=None, show=0) rs.ShowGridAxes(view=None, show=0) rs.ViewDisplayMode(view=None, mode="Wireframe") rs.EnableRedraw(0) dm.PointRadius(displayModeX=0, rad=2, styl=1) rs.DeleteObjects(rs.AllObjects()) ### anz = 5000 radius_sphere = random.uniform(5.0, 10) center_sphere = [random.randint(0, 5), random.randint(0, 5), random.randint(0, 5)] cube_size = random.randint(10, 15) center_cube = [5, 5, 0] size = random.randint(10, 20) l = size / 2 half_size = size / 2 anz_line = 20 ICE = [173, 216, 230] COAL = [255, 69, 0] #for i in range(anz**2): #**2 fuer eine groessere dichte # vecX = rs.VectorRotate(vec1, deltaAngle*i, dm.pntRandVec(-1,1)[0] ) # vecX = rs.VectorScale( vecX, random.uniform(0, 1) ) # vecX = rs.VectorAdd( vecX, center1 ) # rs.VectorUnitize( vecX) # points_1 = rs.AddPoint( vecX) # rs.ObjectColor(points_1, random_color1) #for j in range(anz**2): #**2 fuer eine groessere dichte ## vecY = rs.VectorRotate(vec2, deltaAngle*j, dm.pntRandVec(-1,1)[0] ) ## vecY = rs.VectorScale( vecY, random.uniform(0, 1) ) # vecY = rs.VectorAdd( vecY, center2 ) # rs.VectorUnitize( vecY) # points_2 = rs.AddPoint( vecY) # rs.ObjectColor(points_2, random_color2) def DrawCube(center, size, anz_line): vecC = [] vecC.append(rs.VectorAdd(center, rs.VectorScale([l, l, -l], 1))) vecC.append(rs.VectorAdd(center, rs.VectorScale([-l, l, -l], 1))) vecC.append(rs.VectorAdd(center, rs.VectorScale([l, -l, -l], 1))) vecC.append(rs.VectorAdd(center, rs.VectorScale([-l, -l, -l], 1))) vecC.append(rs.VectorAdd(center, rs.VectorScale([l, l, l], 1))) vecC.append(rs.VectorAdd(center, rs.VectorScale([-l, l, l], 1))) vecC.append(rs.VectorAdd(center, rs.VectorScale([l, -l, l], 1))) vecC.append(rs.VectorAdd(center, rs.VectorScale([-l, -l, l], 1))) 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) leftCrv = rs.AddCurve([vecC[1], vecC[5], vecC[7], vecC[3], vecC[1]], 1) for _ in range(anz_line): random.shuffle(vecC) crvs = rs.AddCurve(vecC, 3) rs.ObjectColor(crvs, COAL) return vecC def cube_corners(center, size): min_corner = [center[i] - half_size for i in range(3)] max_corner = [center[i] + half_size for i in range(3)] return min_corner, max_corner #den Teil hab ich recherchiert def sphere_pnts_outside_cube(radius, center, min_corner, max_corner, points_count): points = [] for _ in range(points_count): theta = random.uniform(0, 2 * math.pi) #zufaelliger Winkel zwischen 0 und 2pi pi = random.uniform(0, math.pi) # Kugelkoordinaten berechnen x = center[0] + radius * math.sin(pi) * math.cos(theta) y = center[1] + radius * math.sin(pi) * math.sin(theta) z = center[2] + radius * math.cos(pi) # Ueberpruefen, ob der Punkt ausserhalb des Wuerfels liegt if (x < min_corner[0] or x > max_corner[0] or y < min_corner[1] or y > max_corner[1] or z < min_corner[2] or z > max_corner[2]): point = rs.AddPoint((x, y, z)) points.append(point) rs.ObjectColor(point, ICE) return points min_corner, max_corner = cube_corners(center_cube, cube_size) DrawCube(center_cube, cube_size, anz_line) sphere_pnts_outside_cube(radius_sphere, center_sphere, min_corner, max_corner, anz) print " ______ ______ ________ ______ ______ ________ _______ ______ _______ __ __ " print "/ | / \ / | / | / \ / | / \ / \ / \ / \ / |" print "$$$$$$/ /$$$$$$ |$$$$$$$$/ $$$$$$/ /$$$$$$ |$$$$$$$$/ $$$$$$$ |/$$$$$$ |$$$$$$$ |$$ \ /$$/ " print " $$ | $$ | $$/ $$ |__ $$ | $$ | $$/ $$ |__ $$ |__$$ |$$ |__$$ |$$ |__$$ | $$ \/$$/ " print " $$ | $$ | $$ | $$ | $$ | $$ | $$ $$< $$ $$ |$$ $$< $$ $$/ " print " $$ | $$ | __ $$$$$/ $$ | $$ | __ $$$$$/ $$$$$$$ |$$$$$$$$ |$$$$$$$ | $$$$/ " print " _$$ |_ $$ \__/ |$$ |_____ _$$ |_ $$ \__/ |$$ |_____ $$ |__$$ |$$ | $$ |$$ |__$$ | $$ | " print "/ $$ |$$ $$/ $$ | / $$ |$$ $$/ $$ | $$ $$/ $$ | $$ |$$ $$/ $$ | " print "$$$$$$/ $$$$$$/ $$$$$$$$/ $$$$$$/ $$$$$$/ $$$$$$$$/ $$$$$$$/ $$/ $$/ $$$$$$$/ $$/ " rs.ZoomExtents()