# Wrapping curves

Let's say we have a parametric $3\mathrm{d}$ curve $C$. How to "wrap" a helix around it? For a helix $(\sin(t),\cos(t),t)$, how to "replace" the $z$ axis with curve $C$?

• You could compute a rotation minimizing frame along the curve and then apply the helix's $(\cos t, \sin t, t)$ formula within this frame. – Rahul May 11 '12 at 14:54

Not too hard. Start by constructing the tube surface corresponding to your curve.

Letting $\mathbf N(t)$ be the normal vector and $\mathbf B(t)$ be the binormal vector corresponding to your curve $\mathbf v(t)$, the tube surface for this curve with circular cross section of radius $r$ is $$\mathbf v(t)+r(\mathbf N(t)\cos\,v+\mathbf B(t)\sin\,v)$$

Your helical curve is then easily obtained by replacing the second parameter $v$ of the tube surface with $nt$, where the parameter $n$ controls the winding. Thus, the vector equation you need is

$$\mathbf v(t)+r(\mathbf N(t)\cos\,nt+\mathbf B(t)\sin\,nt)$$

• ...and for a further generalization, replace the $\cos\,v$ and $\sin\,v$ with the two components of your favorite parametrically-represented plane curve. – J. M. is a poor mathematician May 11 '12 at 15:01
• Any references? "Tube surface" isn't showing anything interesting in google. – zxc May 11 '12 at 15:09
• How is your ${\bf N}(t)$ defined? Does it remain well-defined at points where the second derivative of the curve vanishes? – TonyK May 11 '12 at 15:11
• @zxcv: I don't. But it's hopefully obvious why the normal and binormal vectors are needed here, no? – J. M. is a poor mathematician May 11 '12 at 15:12
• Rahul's suggestion (comment to the original question) looks more sensible. – TonyK May 11 '12 at 15:13

The answer given won't always work very well. Assume that the original curve is planar. Any place it has an inflexion, the normal vector $N(t)$ will flip from one side of the curve to the other, and this will wreak havoc with your "helix". Things could get even worse for non-planar curves. You need some sort of continuous definition of a frame moving along the curve (which you can then use in place of the vectors $N(t)$ and $B(t)$. This frame doesn't really need to be "rotation-minimising", maybe, but at least it needs to be continuously varying as a function of t.

If the curve is planar, and $M$ denotes a unit vector normal to its plane, then using $N(t) = M \times T(t)$ and $B(t) = M$ will work, as long as $N(t)$ is continuous. Plug these into the equations given in the first answer.