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$?
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)$$
- 75,051
-
...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. ain't a 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. ain't a 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
-
@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? – J. M. ain't a mathematician May 11 '12 at 15:14
-
@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) ? – zxc May 11 '12 at 15:21
-
@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... – J. M. ain't a mathematician May 11 '12 at 15:24
-
@J.M.: sorry, I meant a 3d parametric curve, the butterfly is a bad example. What about $(x+zsin(t),xsin(t),y*sin(t))$ ? – zxc May 11 '12 at 15:29
-
@zxcv: Eh? That last one does not look to be a curve; why are there coordinates in the components? – J. M. ain't a mathematician May 11 '12 at 15:44
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.
- 43,483
- 3
- 61
- 122