Parametrising a piecewise circular curve in 3d

analytic geometryconic sectionscurvesgeometryparametrization

The curve in question is a closed curve $C: = \overline{abcda}$ made of three circular arcs $C_1=ab, C_2 =bc$, $C_3 = cd$ and a straight line segment $ C_4 = da$. The arc $C_1$ lies on a plane $P_1$ and is of radius $r$ and length $l$ while $C_3$ is also of same radius $r$ and length $l$ but lying on a plane $P_3$, where the planes $P_1$ and $P_3$ intersect along a line $q$ that is lying on another plane $P$.

The straight line segment $C_4$ is coincident with $q$ and joins the end points $a$ and $d$ of the circular arcs $C_1$ and $C_3$ respectively. Lastly the circular arc $C_2$, is of radius $R$ and length $l_0$ joining the other two end points $b$ and $c$. $C_2$ lies on a plane $P_2$ that is tangential to both the arcs $C_1$ and $C_3$ at points $b$ and $c$. There is tangent continuity at the points where the different arcs/ line segment join.The center of the circular arc $C_2$ lies on the line perpendicular to the straight line segment $C_4$ and passing through its mid-point.

To give some context, the curve was fashioned out of the 3d computer graphics design software Rhino. The congruent circular arcs $C_1$ and $C_3$ are actually curves on congruent cones on opposite sides of the tangent plane $P_2$ that contains the circular arc $C_2$. The center of $C_2$ corresponds to an isolated tangential point of contact between the cones. See the image of the curve below without the cones. The join points are highlighted in green.

enter image description here

The usual way seems to use the Bezier curve approximation, but I was looking for something more classical as circular curves are not well approximated by Bezier curves and I wish to use this to parametrise a developable surface. This is probably also related to the 3d biarc concept. I understand, although this is piecewise smooth, globally it is just $C_1$. I was wondering if there is a way to parametrise the curve using the turning angles of the tangents or something more simple.

Best Answer

We use the natural parameter $s$. That is, given a piece of the curve and its point $x$, let $x=x(s)$, where $s$ is the length of the curve from the beginning of the piece to the point $x$. Then the tangent vector $x’(s)$ always has length $1$, so at points joining the pieces the tangent vectors from distinct sides are equal.

Then the segment from $d$ to $a$ of length $L$ can be parametrized as $x(s)=(1-s/L)d+(s/L)a$, $s\in [0,L]$.

Let $D$ be a circular arc of the radius $R$, length $L$, lying in the plane $Q$, with the center at the point $c$, and beginning from the point $p$. Let $n$ be a unit normal vector to the plane $Q$ at the point $c$, $m=\tfrac{1}R(p-c)$, and $k=m\times n$ be the vector product. Then $D$ can be parametrized as $x(s)=c+mR\cos (s/R)+kR\sin (s/R)$, $s\in [0,L]$. Note that in general there are two circular arcs of length $L$ beginning from $p$. So if the arc chosen above has the wrong endpoint $x(L)$ then to provide the correct arc we have to switch the sign of the vector $k$ .