############################## ### DM2_w24 hu_03_2spheres_cube ### ############################## import rhinoscriptsyntax as rs import random, time, sys sys.path.append("P:/") sys.path.append("P:/DM2/") sys.path.append("P:/dm2/") import DM_lib as dm rs.EnableRedraw(0) # erste Sphere dm.eA() center_sphere1 = [15, 15, 3] anz_sphere1 = 5120 deltaAngle = 360 / anz_sphere1 for i in range(anz_sphere1): vecX = rs.VectorRotate([3.0 * random.uniform(0.1, 0.99), 0, 0], deltaAngle * i, dm.pntRandCoords(-1, 1)[0]) vecX = rs.VectorScale(vecX, random.uniform(0.7, 1)) vecX = rs.VectorAdd(vecX, center_sphere1) rs.AddPoint(vecX) #cube cube_center = [17, 27, 3] cube_size = 20 points_per_side = 19 half_size = cube_size / 2.0 min_bound = [cube_center[0] - half_size, cube_center[1] - half_size, cube_center[2] - half_size] max_bound = [cube_center[0] + half_size, cube_center[1] + half_size, cube_center[2] + half_size] #Punkte for _ in range(points_per_side ** 3): x = random.uniform(min_bound[0], max_bound[0]) y = random.uniform(min_bound[1], max_bound[1]) z = random.uniform(min_bound[2], max_bound[2]) rs.AddPoint([x, y, z]) #second sphere center_sphere2 = [25, 30, 5] anz_sphere2 = 2000 radius_sphere2 = 15.0 deltaAngle2 = 360 / anz_sphere2 for i in range(anz_sphere2): vecX = rs.VectorRotate([radius_sphere2 * random.uniform(0.1, 0.99), 0, 0], deltaAngle2 * i, dm.pntRandCoords(-1, 1)[0]) vecX = rs.VectorScale(vecX, random.uniform(0.7, 1)) vecX = rs.VectorAdd(vecX, center_sphere2) rs.AddPoint(vecX) rs.EnableRedraw(1) print("END")