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$?
Wrapping curves
-
2You could compute a [rotation minimizing frame](http://research.microsoft.com/en-us/um/people/yangliu/publication/computation%20of%20rotation%20minimizing%20frames.pdf) along the curve and then apply the helix's $(\cos t, \sin t, t)$ formula within this frame. – 2012-05-11
2 Answers
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)$
-
0@zxcv: Eh? That last one does not look to be a curve; why are there coordinates in the components? – 2012-05-11
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.