Constructing n tangential arcs given a start point, end point and n radii

72 Views Asked by At

A line starts at $A=(x_s, y_s)$ and finishes at $B=(x_e,y_e)$

Some things we know about this line:

  • It is made up of $n$ circular arcs that are tangential to one another where they join together.
  • Every arc is upwards facing (like a smile)
  • The arcs have radii $R_1, R_2, ...$ etc. that we know the value of
  • We can assume $x_s < x_e$ and $y_s < y_e$
  • The gradient of the line at the start point $A$ of the line is zero, at the end point $B$ the gradient can be whatever

My aim is to be able to sketch this line, and to do that I expect this problem reduces to finding the $n$ center points $(x_{c1},y_{c1}), (x_{c2},y_{c2}), ...$etc. and the $n-1$ tangential points $(x_{t1},y_{t1}), (x_{t2},y_{t2}), ...$etc. but I keep getting stuck when I try to do that myself.

If finding the general solution to this is too tricky, any answer for $n=2$ or $n=3$ would still be very helpful. My end goal is to write some code that sketches the required line given (start point, end point, radii) as an input.

1

There are 1 best solutions below

2
On BEST ANSWER

We can set WLOG $A=(0,0)$. Hence $C_1=(0,R_1)$ and (see figure below): $$ \begin{align} C_2 =\ & C_1+(R_1-R_2)\big(\sin\theta_1,-\cos\theta_1\big)\\ C_3 =\ & C_2+(R_2-R_3)\big(\sin(\theta_1+\theta_2),-\cos(\theta_1+\theta_2)\big)\\ \dots & \\ \end{align} $$ $$ \begin{align} T_1 =\ & C_1+R_1\big(\sin\theta_1,-\cos\theta_1\big)\\ T_2 =\ & C_2+R_2\big(\sin(\theta_1+\theta_2),-\cos(\theta_1+\theta_2)\big)\\ T_3 =\ & C_3+R_3\big(\sin(\theta_1+\theta_2+\theta_3), -\cos(\theta_1+\theta_2+\theta_3)\big)\\ \dots & \\ \end{align} $$ where $\theta_i$ is the angle insisting on the $i$th arc.

As $T_n= B$ we must then satisfy two equations: $T_{nx}=x_e$ and $T_{ny}=y_e$ for the $n$ unknowns $\theta_1,\dots\theta_n$.

For $n=2$ Mathematica finds an explicit (but very lengthy) solution. For $n>2$ one could in principle find a solution depending on $n-2$ angles among $\theta_i$.

enter image description here