@g20/euclid
Version:
Euclidean Geometry Utilities
3 lines (2 loc) • 885 B
JavaScript
System.register(["@g20/core"],(function(e){"use strict";var c,s;return{setters:[function(e){c=e.G20,s=e.dispose}],execute:function(){e("circle_circle_intersection",(function(e,n){const o=c.zero.clone(),r=c.zero.clone(),u=[];let a=!1;const i=()=>{a&&function(e,s,n,o,r,u){if(-1!==r&&-1!==u){t.copyVector(o).sub(n);const a=t.quaditude(),i=u*u,d=r*r,l=Math.sqrt(a),b=(a-i+d)/(2*l),h=d-b*b;if(h>=0){const o=Math.sqrt(h),r=t.clone().scale(1/l),u=r.clone().mul(c.I),a=r.clone().scale(b),i=u.clone().scale(o);e.copyVector(n).add(a).add(i),s.copyVector(n).add(a).sub(i)}else e.set(NaN,NaN),s.set(NaN,NaN)}}(o,r,e.X,n.X,e.radius.a,n.radius.a)};u.push(e.X.change$.subscribe(i)),u.push(n.X.change$.subscribe(i)),u.push(e.radius.change$.subscribe(i)),u.push(n.radius.change$.subscribe(i)),a=!0,i();return[o,r,{dispose(){s(u)}}]}));const t=c.vector(0,0)}}}));
//# sourceMappingURL=index.min.js.map