circle_packing3.scad
1 use <triangle/tri_subdivide.scad> 2 use <experimental/tri_circle_packing.scad> 3 4 use <triangle/tri_delaunay.scad> 5 6 7 function circle_packing3(points, density = 1, min_r = 1) = 8 [ 9 for(t = tri_delaunay(points, ret = "TRI_SHAPES")) 10 each circle_packing_triangle3(t, density, min_r) 11 ]; 12 13 function circle_packing_triangle3(t, density, min_r) = 14 [ 15 for(st = tri_subdivide(t, density)) 16 each tri_circle_packing(st, min_r) 17 ]; 18 19 $fn = 24; 20 density = 2; 21 min_r = 1; 22 points = [for(i = [0:100]) rands(-100, 100, 2)]; 23 24 25 for(c = circle_packing3(points, density, min_r)) { 26 translate(c[0]) 27 sphere(c[1]); 28 }