|
|
|
#1 |
|
</hate>
Join Date: Jun 2005
Location: CA
Posts: 253
|
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!
__________________
-dtøne- Flash CS4 | AS2 Life is a journey, not a destination.
|
|
|
|
|
|
#2 |
|
Senior Member
Join Date: Oct 2002
Posts: 444
|
|
|
|
|
|
|
#3 |
|
</hate>
Join Date: Jun 2005
Location: CA
Posts: 253
|
Touché, thanks. Brilliant Google page, never seen that before
__________________
-dtøne- Flash CS4 | AS2 Life is a journey, not a destination.
|
|
|
|
|
|
#4 |
|
Sporadic FK User
Join Date: Dec 2003
Location: Houston
Posts: 317
|
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;
__________________
undefined |
|
|
|
![]() |
| Tags |
| arc, radius |
|
||||||
| Thread Tools | Search this Thread |
| Display Modes | |
|
|