/ src / experimental / circle_packing3.scad
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  }