Given a description of an arc which has a startpoint and endpoint (both in Cartesian x,y coordinates), radius and direction (clockwise or counter-clockwise), I need to convert the arc to one with a start-angle, end-angle, center, and radius.
Is there known algorithm or pseudo code that allows me to do this? Also, is there any specific term to describe these kinds of transformations?
You can find a center solving this equation system:
(sx-cx)^2 + (sy-cy)^2=R^2
(ex-cx)^2 + (ey-cy)^2=R^2
where (sx,sy) are coordinates of starting point, (ex,ey) for ending point, unknowns cx, cy for center. This system has two solutions. Then it is possible to find angles as
StartAngle = ArcTan2(sy-cy, sx-cx)
EndAngle = ArcTan2(ey-cy, ex-cx)
Note that known direction doesn't allow to select one from two possible solutions without additional limitations. For example, start=(0,1), end=(1,0), R=1 and Dir = clockwise give us both Pi/2 arc with center (0,0) and 3*Pi/2 arc with center (1,1)