packing_circles.scad
1 use <util/rand.scad> 2 use <experimental/circle_packing.scad> 3 4 size = [200, 100]; 5 min_radius = 1; 6 point_numbers = 100; 7 8 points = [ 9 for(i = [0:point_numbers - 1]) 10 [rand(0, size.x), rand(0, size.y)] 11 ]; 12 13 circles = circle_packing(points, min_radius); 14 mr = max([for(c = circles) c[1]]); 15 translate([0, 0, mr]) 16 for(c = circles) { 17 translate(c[0]) 18 sphere(c[1], $fn = 48); 19 } 20 21 for(c = circles) { 22 translate(c[0]) 23 linear_extrude(mr) 24 circle(c[1]/ 3, $fn = 48); 25 } 26 linear_extrude(1) square(size);