1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-01-29 11:58:39 +01:00
dotSCAD/examples/stereographic_projection/stereographic_foliage_scroll.scad
2022-06-24 09:22:39 +08:00

47 lines
1.1 KiB
OpenSCAD

use <experimental/foliage_scroll.scad>
use <polyline_join.scad>
use <stereographic_extrude.scad>
$fn = 48;
model = "BOTH"; // [BOTH, SPHERE, SHADOW]
width = 400;
height = 400;
shadow_thickness = 2;
max_spirals = 25;
angle_step = 360 / $fn;
min_radius = 15;
init_radius = rands(min_radius * 2, min_radius * 3, 1)[0];
stereographic_foliage_scroll();
module stereographic_foliage_scroll() {
module draw(spirals) {
for(i = [0:1]) {
r = spirals[i][0];
path = spirals[i][1];
polyline_join(path)
circle(r / 6);
}
for(i = [2:len(spirals) - 1]) {
r = spirals[i][0];
path = spirals[i][1];
polyline_join([for(i = [1:len(path) - 1]) path[i]])
circle(r / 6);
}
}
spirals = foliage_scroll([width, height], max_spirals, init_radius, min_radius);
if(model != "SHADOW") {
stereographic_extrude(shadow_side_leng = width, convexity = 10, $fn = $fn * 2)
draw(spirals);
}
if(model != "SPHERE") {
color("black")
linear_extrude(shadow_thickness)
draw(spirals);
}
}