From 764b3b7a735d5da9a2e10f452818b75ae4ed1f44 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Mon, 5 Oct 2020 20:41:09 +1100 Subject: [PATCH] Fix findPoint to deal with 90 degree angles because tan(90) results in inf, some conditions were needed for these cases --- polyround.scad | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/polyround.scad b/polyround.scad index fb98355..ac93db9 100644 --- a/polyround.scad +++ b/polyround.scad @@ -328,13 +328,14 @@ function parallelFollow(rp,thick=4,minR=1,mode=1)= concat(cen,outR); function findPoint(ang1,refpoint1,ang2,refpoint2,r=0)= +// finds the intersection of two lines given two angles and points on those lines let( m1=tan(ang1), c1=refpoint1.y-m1*refpoint1.x, m2=tan(ang2), c2=refpoint2.y-m2*refpoint2.x, - outputX=(c2-c1)/(m1-m2), - outputY=m1*outputX+c1 + outputX=ang1==90?refpoint1.x:ang2==90?refpoint2.x:(c2-c1)/(m1-m2), + outputY=ang1==90?m2*outputX+c2:m1*outputX+c1 ) [outputX,outputY,r];