mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-11 17:24:20 +02:00
add voronoi_taiwan
This commit is contained in:
40
examples/taiwan/voronoi_taiwan.scad
Normal file
40
examples/taiwan/voronoi_taiwan.scad
Normal file
@@ -0,0 +1,40 @@
|
||||
use <experimental/tri_delaunay.scad>;
|
||||
use <hull_polyline2d.scad>;
|
||||
use <shape_taiwan.scad>;
|
||||
use <in_shape.scad>;
|
||||
|
||||
voronoi_taiwan();
|
||||
|
||||
module voronoi_taiwan() {
|
||||
taiwan = shape_taiwan(120, distance = 1);
|
||||
|
||||
n = 40;
|
||||
xs = rands(-15, 15, n);
|
||||
ys = rands(-30, 40, n);
|
||||
pts = [
|
||||
for(i = [0:n - 1])
|
||||
let(p = [xs[i], ys[i]])
|
||||
if(in_shape(taiwan, p, true))
|
||||
p
|
||||
];
|
||||
|
||||
all = concat(taiwan, pts);
|
||||
|
||||
cells = tri_delaunay(all, ret = "VORONOI_CELLS");
|
||||
for(i = [0:len(cells) - 1]) {
|
||||
color(rands(0, 1, 3))
|
||||
translate(all[i])
|
||||
linear_extrude(2, scale = 0.8)
|
||||
translate(-all[i])
|
||||
intersection() {
|
||||
polygon(taiwan);
|
||||
polygon(cells[i]);
|
||||
}
|
||||
}
|
||||
|
||||
color("black")
|
||||
linear_extrude(.75)
|
||||
offset(1)
|
||||
polygon(taiwan);
|
||||
|
||||
}
|
Reference in New Issue
Block a user