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$?
 A: 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)$$
A: 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.
