mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-13 10:14:41 +02:00
fix a_step == 0
This commit is contained in:
@@ -6,7 +6,38 @@ function arc_great_circle(p1, p2, center = [0, 0, 0]) =
|
|||||||
radius = norm(p1 - center),
|
radius = norm(p1 - center),
|
||||||
normal_vt = cross(p2, p1),
|
normal_vt = cross(p2, p1),
|
||||||
a = acos(p2 * p1 / pow(radius, 2)),
|
a = acos(p2 * p1 / pow(radius, 2)),
|
||||||
steps = round(a / (360 / __frags(radius))),
|
steps = round(a / (360 / __frags(radius)))
|
||||||
a_step = a / steps
|
|
||||||
)
|
)
|
||||||
[for(i = [0:steps]) ptf_rotate(p1, a_step * i, normal_vt)];
|
steps == 0 ? [p1, p2] :
|
||||||
|
let(a_step = a / steps)
|
||||||
|
[for(i = [0:steps]) ptf_rotate(p1, a_step * i, normal_vt)];
|
||||||
|
|
||||||
|
/*
|
||||||
|
use <experimental/arc_great_circle.scad>
|
||||||
|
use <voronoi/vrn_sphere.scad>
|
||||||
|
use <fibonacci_lattice.scad>
|
||||||
|
use <polyline_join.scad>
|
||||||
|
|
||||||
|
n = 10;
|
||||||
|
radius = 10;
|
||||||
|
|
||||||
|
points = fibonacci_lattice(n, radius);
|
||||||
|
#for(p = points) {
|
||||||
|
translate(p)
|
||||||
|
sphere(.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
%sphere(radius);
|
||||||
|
|
||||||
|
for(cell = vrn_sphere(points)) {
|
||||||
|
pts = concat(cell, [cell[0]]);
|
||||||
|
|
||||||
|
for(i = [0:len(pts) - 2]) {
|
||||||
|
p1 = pts[i];
|
||||||
|
p2 = pts[i + 1];
|
||||||
|
arc = arc_great_circle(pts[i], pts[i + 1], $fn = 36);
|
||||||
|
polyline_join(arc)
|
||||||
|
sphere(.5, $fn = 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
Reference in New Issue
Block a user