From f9d8f87829e5dd092af64376c4e333942baeb43b Mon Sep 17 00:00:00 2001 From: Revar Desmera Date: Sat, 3 May 2025 23:22:48 -0700 Subject: [PATCH] Bugfix for _teardrop_corner with ang != 45 --- shapes3d.scad | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/shapes3d.scad b/shapes3d.scad index 1f2301d8..89435763 100644 --- a/shapes3d.scad +++ b/shapes3d.scad @@ -2362,14 +2362,15 @@ function _teardrop_corner(r, corner, ang=45) = assert(is_finite(r)) assert(is_finite(ang)), cp = circle_2tangents(abs(r), corner)[0], + pvec = rot(sign(r)*90,p=corner[0]-corner[1]), path1 = arc(r=abs(r), corner=corner), path2 = [ for (p = select(path1,0,-2)) - if (abs(modang(v_theta(p-cp)-90)) <= 180-ang) p, + if (vector_angle(p-cp, pvec) > ang) p, last(path1) ], path = [ - line_intersection([corner[0],corner[1]],[path2[0],path2[0]+polar_to_xy(1,-90-ang*sign(r))]), + line_intersection([corner[0],corner[1]],[path2[0],path2[0]+polar_to_xy(1,270-(90-ang)*sign(r))]), each path2 ] ) path;