Arc based on Start/End points and Radius- Mostly done
Hi everyone. I'm trying to create an arc based on start and end points, and a radius.
I've been working on this for a few days now, and I can get close, but not quite there. I did some searching and found some code to help me, which connects 3 points by drawing an arc, but I need to be able to specify the radius of the arc and have it connect two points based on that.
The complex math is done, I'm just not sure how to tweak the code to let me specify a radius to connect two points. If someone wouldn't mind taking a look at the attached FLA, and pointing me in the right direction, it would be much appreciated! Thanks!
If I'm not mistaken, you're on the wrong track. Constructing an arc from two points and a radius is a very different problem from the three-point construction.
Given two points and a radius, there are 4 different arcs you can make (that lie on 2 circles). Here's some code that finds the centers of the 2 circles that the arcs can lie on:
Code:
//points (x1,y1) and (x2,y2)
//radius r
var mx = (x1+x2)/2;
var my = (y1+y2)/2;
var leg1x = mx-x1;
var leg1y = my-y1;
var leg1 = Math.sqrt(leg1x*leg1x + leg1y*leg1y);
if(leg1 > Math.abs(r))
return; //no solution
var leg2 = Math.sqrt(r*r - leg1*leg1);
var leg2x = leg1y*leg2/leg1;
var leg2y = -leg1x*leg2/leg1;
var c1x = mx+leg2x;
var c1y = my+leg2y;
var c2x = mx-leg2x;
var c2y = my-leg2y;
You can probably work from that to construct the arc you want.