15

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

Najib Idrissi
  • 54,185
Hui Zhang
  • 315
  • Do you mean a second helix of radius $r$ curling around the path of the helix with radius $R$? – Neal Aug 07 '13 at 03:05
  • You might include a picture of the structure you want in your question. – Neal Aug 07 '13 at 03:10
  • Do you mean a narrow tube around the helix curve, as in line : cylinder :: circle : torus :: helix : the-surface-you-want? –  Aug 07 '13 at 03:11
  • Yes, I mean a narrow tube with radius $r$ around the helix curve, does anyone have some ideas about the equation? Thanks so much for any help. – Hui Zhang Aug 07 '13 at 04:07
  • 1
    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. – Jyrki Lahtonen Aug 07 '13 at 04:20
  • 1
    @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.$ – Will Jagy Aug 07 '13 at 04:33
  • 1
    @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... – Jyrki Lahtonen Aug 07 '13 at 04:40

1 Answers1

24

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]$. In terms of individual coordinates this reads (barring mistakes due to lack of coffee): $$ \begin{aligned} x(t,u)&=ht+\frac{Ra\sin u}{\sqrt{R^2+h^2}},\\ y(t,u)&=R\cos t-a\cos t\cos u+\frac{ha\sin t\sin u}{\sqrt{R^2+h^2}},\\ z(t,u)&=R\sin t-a\sin t\cos u-\frac{ha\cos t\sin u}{\sqrt{R^2+h^2}}. \end{aligned} $$

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

Mathematica-output

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

Jyrki Lahtonen
  • 133,153
  • 1
    So amazing answers, so beautiful plots, Thank you so much for your answers and help, it is very helpful. – Hui Zhang Aug 07 '13 at 05:24
  • 2
    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. – Jyrki Lahtonen Aug 07 '13 at 05:24
  • 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)$$ – Hui Zhang Aug 07 '13 at 05:25
  • 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. – Jyrki Lahtonen Aug 07 '13 at 05:41
  • 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. – Hui Zhang Aug 07 '13 at 16:33
  • Can this answer be represented in terms of three separate x(t), y(t) and z(t) functions, like the three parametric functions in the original question? – posfan12 Oct 02 '19 at 04:02
  • 2
    @posfan12 You need two parameters to parametrize a surface. And my answer includes a formula for $S(t,u)$. Just plug in the formulas for $\vec{r}(t)$, $\vec{n}(t)$, $\vec{b}(t)$ from above to write it in the form $(x(t,u),y(t,u),z(t,u))$. – Jyrki Lahtonen Oct 02 '19 at 04:08
  • I don't understand a lot of math syntax (I am more of a programmer) so never mind. – posfan12 Oct 02 '19 at 04:28
  • 3
    @posfan12 I added the explicit functions $x(t,u), y(t,u), z(t,u)$. Hopefully without errors. I did test the formulas when producing those images, but that file was on an older laptop now gone. The vector form is easier to adapt to a setting when the helix runs along an axis other than one of the coordinate axes. – Jyrki Lahtonen Oct 02 '19 at 04:54
  • 1
    Thanks, now I can understand it! But unless I am overlooking something, I don't think you defined what h, R and a represent. – posfan12 Oct 03 '19 at 17:44
  • 2
    @posfan12 Those were explained in the question. $R$ is the radius of the cylinder the helix is running along, and $2\pi h$, denoted $\lambda$ in the picture, is the "rise per revolution" – Jyrki Lahtonen Oct 04 '19 at 16:48