I know for the helix, the equation can be written: $$x=R\cos(t)$$ $$y=R\sin(t)$$ $$z=ht$$ this is the helix curve, and there are two parameters: outer radius $R$ and the pitch length $2\pi h$. However, I would like to generate the 3D helix with another minor radius $r$. This is not the helix curve, but a 3D object something like spring. I don't know exactly the name of such structure, but when I search helix equation, they usually give the equations for helix curve but not for the 3D helix object (spring). Does anyone know the equation of such object? Thank you so much for any help and suggestions.

ps. the shape looks like the following way: Helix

  • $\begingroup$ Do you mean a second helix of radius $r$ curling around the path of the helix with radius $R$? $\endgroup$ – Neal Aug 7 '13 at 3:05
  • $\begingroup$ You might include a picture of the structure you want in your question. $\endgroup$ – Neal Aug 7 '13 at 3:10
  • 1
    $\begingroup$ I would start trying with the parametrization $$(x(t),y(t),z(t))+r(\cos u) \vec{n}(t)+r(\sin u)\vec{b}(t),$$ where $\vec{n}(t)$ and $\vec{b}(t)$ are the normal and binormal of the helix curve respectively. IIRC those are both continuous, so no problems. Need to check. $\endgroup$ – Jyrki Lahtonen Aug 7 '13 at 4:20
  • 1
    $\begingroup$ @JyrkiLahtonen, yes, that's correct. For $r$ small enough the resulting surface is not just continuous but (real) analytic. It appears he is calling your $r=a.$ $\endgroup$ – Will Jagy Aug 7 '13 at 4:33
  • 1
    $\begingroup$ @Will: I was a bit worried about the possibility of the normal or binormal "switching sides", but the helix has constant curvature and torsion, so can't happen (I think). Typing an answer together with Mathematica graphics... $\endgroup$ – Jyrki Lahtonen Aug 7 '13 at 4:40

We can use a local orthonormal basis of a parametrized curve to get a surface of the desired type.

A helix running around the $x$-axis has a parametrization like $$ \vec{r}(t)=(ht,R\cos t, R\sin t). $$ Its tangent vector can be gotten by differentiating $$ \vec{t}=\frac{d\vec{r}(t)}{dt}=(h,-R\sin t,R\cos t). $$ We note that this has constant length $\sqrt{h^2+R^2}$. With a more general curve this is not necessarily the case, and we would normalize this to unit length, and switch to using the natural parameter $s=$ the arc length. This time $ds/dt=\sqrt{h^2+R^2}$, and we can keep using $t$ as long as we remember to normalize.

We get a (local) normal $\vec{n}(t)$ vector by differentiating the (normalized) tangent $$ \vec{n}(t)= \frac{\frac{d\vec{t}}{dt}}{\left\Vert\frac{d\vec{t}}{dt}\right\Vert}=(0,-\cos t,-\sin t). $$ As the name suggests this is orthogonal to the tangent vector (in the direction of change of the tangent). The third basis vector is the binormal $$ \vec{b}(t)=\frac1{\Vert\vec{t}\Vert}\vec{t}\times\vec{n}=\frac{1}{\sqrt{R^2+h^2}}(R,h\sin t,-h\cos t). $$ This is, of course, orthogonal to both $\vec{t}$ and $\vec{n}$.

The key is that we get the desired surface by drawing (3D-)circles with axis direction determined by the direction of the curve, i.e. the tangent. Equivalently, we draw a circle of radius $a$ in the plane spanned by $\vec{n}$ and $\vec{b}$. Hence we get the entire surface $S$ parametrized as $$ S(t,u)=\vec{r}(t)+a\vec{n}(t)\cos u+ a\vec{b}(t)\sin u $$ with $t$ ranging over as many loops as you wish, and $u$ ranging over the interval $[0,2\pi]$.

Here's what Mathematica-output looks like with parameters $h=1$, $R=3$, $a=0.4$:


Here's the effect of the change to $a=1.0$. The lines on the surface correspond to constant values of $t$ and $u$. These are now more clearly defined.

more Mathematica-output

  • 1
    $\begingroup$ So amazing answers, so beautiful plots, Thank you so much for your answers and help, it is very helpful. $\endgroup$ – Hui Zhang Aug 7 '13 at 5:24
  • 1
    $\begingroup$ The formulas for the normal and binormal are simpler, if you use the natural parameter of the curve. If you use this same process for another curve, you need to make adjustments for that. $\endgroup$ – Jyrki Lahtonen Aug 7 '13 at 5:24
  • $\begingroup$ One more questions, for such surface, is it possible to reduce the equations to in the form? $$f(x,y,z)=g(h,R,a)$$ $\endgroup$ – Hui Zhang Aug 7 '13 at 5:25
  • $\begingroup$ Like eliminate the parameters $t$ and $u$? I'm not sure how easy that would be. Haven't thought about it. I would think it's simpler to use the parametrization for most things: calculating tangent planes, normals and such. $\endgroup$ – Jyrki Lahtonen Aug 7 '13 at 5:41
  • $\begingroup$ Thank you so much. You answers are very helpful. Actually I have two questions, and this post is in fact the 1st question of generating the surface. My 2nd question is, given a fixed point $(x_0,y_0,z_0)$, how to determine whether this point is inside or outside the object with such surface? That's why I thought whether the equation can reduce to the form $f(x,y,z)=g(h,R,a)$. However, anyway, you have solved the 1st question and it is very helpful. Thank you again. $\endgroup$ – Hui Zhang Aug 7 '13 at 16:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.