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.

  • $\begingroup$ (this problem would be similar to computing when planets align, but the motion is around three different centers) $\endgroup$ – Justin Solomon Jun 21 '16 at 18:26
  • $\begingroup$ 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? $\endgroup$ – Justin Solomon Jun 21 '16 at 19:04
  • $\begingroup$ What is $\vec x_i$? $\endgroup$ – N74 Jun 21 '16 at 19:09
  • $\begingroup$ Oops! I think there's an easier way to write this --- give me 5 min to correct... $\endgroup$ – Justin Solomon Jun 21 '16 at 19:11
  • $\begingroup$ Fixed! Sorry about that, had rotation matrices on the brain. $\endgroup$ – Justin Solomon Jun 21 '16 at 19:13

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,


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*.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.