# Collinearity of triangle vertices on circular paths

Suppose as a function of time, the vertices of a triangle move with constant speed along circular trajectories: $$\vec p_i(t) = a_i \left( \begin{array}{c} \cos(b_i t+ c_i)\\ \sin(b_i t+ c_i) \end{array} \right) +\vec d_i,$$ where $i\in\{1,2,3\}$. All motion is in the plane, that is, $\vec p_i(t)\in\mathbb{R}^2$. Every vertex has its own speed/arc.

I need the smallest $t^\ast\geq0$ for which $p_1(t^\ast)$, $p_2(t^\ast)$, and $p_3(t^\ast)$ become collinear, if such a $t^\ast$ exists. Is this computable in closed form? If not, is there a lightweight algorithm (or convex optimization problem) that would recover $t^\ast$?

So far, all I can think of doing is defining the circles implicitly and writing down a condition for finding a line through all three circles. But, this does not involve $t$ and already is not a nice formula.

• (this problem would be similar to computing when planets align, but the motion is around three different centers) – Justin Solomon Jun 21 '16 at 18:26
• Additionally it's ok to assume the $b_i$'s don't have common integer factors. So, for example, maybe it's the case that any pair of points on the first two circles is eventually achieved? – Justin Solomon Jun 21 '16 at 19:04
• What is $\vec x_i$? – N74 Jun 21 '16 at 19:09
• Oops! I think there's an easier way to write this --- give me 5 min to correct... – Justin Solomon Jun 21 '16 at 19:11
• Fixed! Sorry about that, had rotation matrices on the brain. – Justin Solomon Jun 21 '16 at 19:13

## 1 Answer

In case that all b_i are rational numbers, without loss of generality, you can assume b_1, b_2, b_3 are integers. (since you can always do a change of variables to rescale the time t)

Using the form of sin(nx) and cos(nx), see e.g. here http://mathworld.wolfram.com/Multiple-AngleFormulas.html

as well as the half angle tangent formula,

https://en.wikipedia.org/wiki/Tangent_half-angle_formula

use the two together, essential you should be able to reduce the determinant constraint "det[p3-p1,p2-p1]=0" as a polynomial equation of tan(t/2).

In summary, 1) first, solving for tan(t/2) by solving a polynomial equation, likely multiple roots will exist. 2) recover t from all possible values of tan(t/2), choose it to be the smallest positive t*.