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...and for a further generalization, replace the $\cos\,v$ and $\sin\,v$ with the two components of your favorite parametrically-represented plane curve. – 2012-05-11
-
0Any references? "Tube surface" isn't showing anything interesting in google. – 2012-05-11
-
0How is your ${\bf N}(t)$ defined? Does it remain well-defined at points where the second derivative of the curve vanishes? – 2012-05-11
-
0@zxcv: I don't. But it's hopefully obvious why the normal and binormal vectors are needed here, no? – 2012-05-11
-
0Rahul's suggestion (comment to the original question) looks more sensible. – 2012-05-11
-
0@Tony: Yes, inflection points would be problematic for this particular definition. Neither will it work for straight lines. Otherwise, it's peachy. Would you happen to have ideas to cure these weak points? – 2012-05-11
-
0@J.M.: Yes, I see what's happening. Helix is special because $z=t$, no? How to wrap more complex curves, that don't have any of its parameters identical to one of the axes? For example the butterfly curve: http://en.wikipedia.org/wiki/Butterfly_curve_(transcendental) ? – 2012-05-11
-
0@zxcv: I addressed that in the first comment. Your butterfly curve has a nice polar equation, and it is a trivial task to turn that polar equation into a parametric one, due to the usual conversion formula from polar to Cartesian coordinates... – 2012-05-11
-
0@J.M.: sorry, I meant a 3d parametric curve, the butterfly is a bad example. What about $(x+z*sin(t),x*sin(t),y*sin(t))$ ? – 2012-05-11
-
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.