Calculate arc central angle given the center, radius, start and end points of the arc

368 Views Asked by At

How can I calculate the angle at the center of an arc knowing radius and center, start, and end points? I know how to do that if I have the length of the arc, but in my case I don't have it.

2

There are 2 best solutions below

5
On BEST ANSWER

Vectors to the rescue!

I assume you're dealing with two dimensions. Let's say the center is $(x_c, y_c)$ and the end points are $(x_1, y_1)$ and $(x_2, y_2)$.

Transform the coordinates so that the center coincides with the origin, and we're dealing with position vectors. The vectors for the end points are $\begin{pmatrix} x_1 - x_c \\ y_1 - y_c \end{pmatrix}$ and $\begin{pmatrix} x_2 - x_c \\ y_2 - y_c \end{pmatrix}$.

The dot product of these two is $(x_1-x_c)(x_2-x_c) + (y_1 - y_c)(y_2 - y_c)$. It is also equal to the product of their magnitudes multiplied by the cosine of the angle between the vectors, which is also the central arc angle you want.

So $(x_1-x_c)(x_2-x_c) + (y_1 - y_c)(y_2 - y_c)\\ = \sqrt{(x_1-x_c)^2 + (y_1 - y_c)^2}\cdot \sqrt{(x_2-x_c)^2 + (y_2 - y_c)^2} \cdot \cos \theta$

This allows you to solve for $\theta$.

As per the comments below, be careful about whether you wish to compute the central angle of the minor arc or the major arc. It's quite trivial going from one to the other.

0
On

Hint: try to compute the length of the arc from the data you have.