Is there a way to graph any 3D curve around other curves? For example, could I create a helix around the line given by parametric equations $x = y = z = t$? Or even around another curve such as $x = z = t$ and $y = t^2$?

The goal of this problem is to be able to create 3D shapes around a arbitrary, user defined axis that can be any continuous line. I've tried to use the concept of 2D function rotation with the 3D version, but I can't seem to figure it out. Note that I am not trying to revolve a 2D shape around a line to create a 3D shape.

  • $\begingroup$ Not too sure what exactly you want. If your shape can be described nicely/easily by using your custom axis, any computer should be able to graph/display it. If you're trying to design a new way to create 3D shapes, I don't see the advantage of your approach but you could always have a look at tangential coordinates system. They should be well defined in 2D, and someone probably defined them in 3D(?). There are many annoying things to take care of when using those though... $\endgroup$ – N.Bach May 19 '17 at 17:50
  • $\begingroup$ Just noticed the matlab tag, so let me correct myself: it should be doable in theory, but I have no clue about any software or matlab function that let you do that easily, unless you can explicitly convert from your representation to a more usual one. $\endgroup$ – N.Bach May 19 '17 at 17:58
  • $\begingroup$ Basically, what I am trying to do is graph a helix around any 3D curve. I have yet to find a simple way to do that. $\endgroup$ – Ryan Alli May 19 '17 at 19:11
  • $\begingroup$ Rotating a 3D function can be done using a rotating matrix. Not sure what you mean by creating a helix around another curve. To get physical for a moment, are you asking what the equation of the points of a helix would be if the helix was wound around a straight rod and the rod was then twisted into some other shape? $\endgroup$ – Jens May 19 '17 at 21:41
  • $\begingroup$ That is exactly what i mean $\endgroup$ – Ryan Alli May 19 '17 at 22:11

Consider the normal helix around the $Z$ axis. The $Z$ axis can be considered as the parametric line of points $P(t)=(0,0,t)^T $. Let $\mathbf u(\theta) = \left( \cos\theta, \sin\theta, 0 \right)^T$. The helix can be expressed as the collection of points $$ P(t) + r\mathbf u(t) $$ where $r$ denotes the radius. To generalize this to other type of curve, let's say $P(t)=\Big( x(t),y(t),z(t) \Big)^T$, it's not too difficult if the three derivatives $x'(t),y'(t)$ and $z'(t)$ are well defined and continuous. Continuity is important there because we want continuity of the unit tangent vector. This unit tangent vector to the curve is $$ \mathbf N(t)=\frac 1{\sqrt{ x'(t)^2+y'(t)^2+z'(t)^2 }} \times \Big( x'(t),y'(t),z'(t) \Big)^T $$ Then if you can figure out the rotation between $\mathbf N(t)$ and $\mathbf e_z=(0,0,1)^T$, say $\mathbf N(t)=\mathbf R_t( \mathbf e_z)$ then your custom helix could be $$ P(t)+r\mathbf R_t\Big( \mathbf u(t) \Big) $$

If your curve doesn't satisfy continuity of the tangent vector, there are probably ways, but it becomes a lot more annoying.

  • $\begingroup$ Okay I think that will do it. Thanks! $\endgroup$ – Ryan Alli May 22 '17 at 1:50

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.