At 2017-04-28T17:40:37+1000, John Gardner wrote: > > > > Does this help or did I manage to misunderstand you completely? > > > I'm afraid so... the issue isn't with calculating radii, but calculating > the `startAngle` and `endAngle`.
Right. I got that but apparently communicated poorly. Sorry. To calculate the angles you need 3 things: 1. A library with arccos() and arcsin() functions. 2. The x and y coordinates of each point of interest, relative to the center. 3. The radius of the arc, measured from its center. The arccos() and arcsin() functions answer the question: "Given this point (x, y) on the arc of a circle, how do I find the angle that puts me there?" startAngle = arccos(x_start / radius) endAngle = arccos(x_end / radius) Depending on which quadrant the angles are in, you might find it easier to use: startAngle = arcsin(y_start / radius) endAngle = arcsin(y_end / radius) Or you can just use one of the functions and adjust the signs yourself. This is what I was getting at when I talked about the inverse trig functions not being one-to-one. This is because, for example, both π/4 and 7π/4 have the same cosine, i.e., you get the same x coordinate from those angles. But if you take the algebraic signs of both your x and y coordinates in to account, you should be able to get the angle values you need. Is this any sort of improvement? Regards, Branden
signature.asc
Description: PGP signature