Calculating the central angle of a circle

386 Views Asked by At

Given a circle with center $(a,b)$ and radius $r$, oriented counter-clockwise, and two points that sit along the circle, $(x_1,y_1)$ and $(x_2,y_2)$, what the is the great circle distance (GCD) between them.

I have something like

$\theta_1=\arccos\left(\frac{x_1-a}{\sqrt{(x_1-a)^2+(y_1-b)^2}}\right)$ and $\theta_2=\arccos\left(\frac{x_2-a}{\sqrt{(x_2-a)^2+(y_2-b)^2}}\right)$

$\theta^* = \theta_1-\theta_2$

$GCD=r \theta^*$

This is assuming that $(x_1,y_1)$ comes before $(x_2,y_2)$ along the circle (in the given orientation). However, this formulation is incorrect. It does not take into account that the range of arccosine is $0 \leq \theta \leq \pi$, and I'm not even sure if I'm orienting my angle properly. As a matter of fact, please include if you have a way to test which point comes first in the orientation.

For example, can you handle the following case for me: Say you have $(2,3)$ and $(4,5)$ sitting on a circle with center $(3,4)$. What is the central angle between them?

1

There are 1 best solutions below

9
On BEST ANSWER

Translate your circle to the origin. The coordinates of $(x_{i},y_{i})$ become $(x_{i}-a,y_{i}-b)$ for $i=1,2$.

You know that if $X_{1}$ and $X_{2}$ are two vectors of the euclidean space $\mathbb{R}^{2}$, the angle $\theta$ formed by $X_{1}$ and $X_{2}$ is obtained as follows (see the remark at the bottom of this answer):

$$\langle X_{1},X_{2}\rangle=\Vert X_{1}\Vert\cdot\Vert X_{2}\Vert\cdot\cos(\theta)$$

where $\langle\cdot\,,\,\cdot\rangle$ denotes the scalar product and $\Vert\cdot\Vert$ the norm derived from this scalar product.

It gives:

$$\cos(\theta)=\frac{(x_{1}-a)(x_{2}-a)+(y_{1}-b)(y_{2}-b)}{\sqrt{(x_{1}-a)^{2}+(y_{1}-b)^{2})}\sqrt{(x_{2}-a)^{2}+(y_{2}-b)^{2}}}\tag{1}$$

And you have to solve the previous equation. As you look for the GCD, take the greatest value for $\theta$.

enter image description here

Here, you have $(2-3,3-4)=(-1,-1)$, whose norm is $\sqrt{2}$ and $(4-3,5-4)=(1,1)$, whose norm is $\sqrt{2}$. For this points, it is easy to know what is $\theta$ because they are symmetric with respect to the origin, but let's try the previous "method".

$$\langle(-1,1),(1,1)\rangle=-1\cdot 1+(-1)\cdot 1=-2=\sqrt{2}\sqrt{2}\cos(\theta)$$

so that $\cos(\theta)=-1$, which means $\theta=\pi+2k\pi$ ($k\in\mathbb{Z}$) and here we only consider $\theta\in]0,2\pi[$, so that $\theta = \pi$. Note that I take $\theta$ in the open interval $]0,2\pi[$ because $\theta=2k\pi$ only if $X_{1}=X_{2}$ but the GCD is not well defined in this case, as far as I know.

Of course, there are often two possible values lying in $]0,2\pi[$ for $\theta$. Take the bigger one as you look for the GCD.

Suppose you want to test whether $X_{1}$ or $X_{2}$ "comes first" when running along the circle counter-clockwise. Let $X_{i}=(x_{i}-a,y_{i}-b)$ ($i=1,2$) Take a look at

$$\frac{X_{i}}{\Vert X_{i}\Vert}=\frac{X_{i}}{r} \tag{$i=1,2$}$$

It lies on a circle of radius $1$ and center $(0,0)$. It can be considered as the trigonometric circle. Then, the abscissa of $\frac{X_{i}}{r}$ is $\cos(\alpha)$ and its ordinate is $\sin(\alpha)$ or equivalently $X_{i}=(r\cos(\alpha),r\sin(\alpha))$. Solve for $\alpha\in[0,2\pi]$, which is the angle as considered in the following representation:

orientation

Calculate the angle for $X_{2}$. The one with the smallest angle is "the first".

Remark: in general, the angle $\theta$ formed by two vectors is considered (by convention) as the "smallest one". Here, we are interested in $2\pi-\text{ the smallest one }$