Fix for #1329: wrong in cyl(), rotate_extrude()

This commit is contained in:
Revar Desmera 2023-12-17 20:13:49 -08:00
parent 8a84e05788
commit 9d267992b6

View file

@ -986,7 +986,7 @@ function rotate_sweep(
style=style style=style
) : ) :
let( let(
steps = ceil(segs(max_x) * angle / 360) + 1, steps = ceil(segs(max_x) * angle / 360) + (angle<360? 1 : 0),
skmat = down(min_y) * skew(sxz=shift.x/h, syz=shift.y/h) * up(min_y), skmat = down(min_y) * skew(sxz=shift.x/h, syz=shift.y/h) * up(min_y),
transforms = [ transforms = [
if (angle==360) for (i=[0:1:steps-1]) skmat * rot([90,0,360-i*360/steps]), if (angle==360) for (i=[0:1:steps-1]) skmat * rot([90,0,360-i*360/steps]),
@ -1046,7 +1046,7 @@ module rotate_sweep(
spin=spin, orient=orient spin=spin, orient=orient
) children(); ) children();
} else { } else {
steps = ceil(segs(max_x) * angle / 360) + 1; steps = ceil(segs(max_x) * angle / 360) + (angle<360? 1 : 0);
skmat = down(min_y) * skew(sxz=shift.x/h, syz=shift.y/h) * up(min_y); skmat = down(min_y) * skew(sxz=shift.x/h, syz=shift.y/h) * up(min_y);
transforms = [ transforms = [
if (angle==360) for (i=[0:1:steps-1]) skmat * rot([90,0,360-i*360/steps]), if (angle==360) for (i=[0:1:steps-1]) skmat * rot([90,0,360-i*360/steps]),