Find amount of turn, given helix height and arc length

790 Views Asked by At

Suppose I know the height $H$ of a cylindrical helix, the circumference of the (cylinder's) base $C$, and the arc length $L$. I believe this information determines the number of turns (or amount of turn in the case that it's less than $1$.)

How can I use $\cos, \sin$, etc. plotting commands to plot it?

2

There are 2 best solutions below

0
On

The equation for a helix is, as from Wikipedia at https://en.wikipedia.org/wiki/Helix#Mathematical_description ,

$$ x=cos(t),\quad y=sin(t),\quad z=t$$

And then based on Matplotlib's plot3d code, I think the following should work:

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
t = np.linspace(-2, 2, 100)
z = t
x = np.sin(z)
y = np.cos(z)
ax.plot(x, y, z, label='parametric curve')
ax.legend()

plt.show()
1
On

You are given helix parameters

$$ H,L, r = C/( 2 \pi) $$

from which you can draw right triangle on cylinder surface development and find out slant angle $\alpha $ as:

$$ \sin \alpha = H/L $$

Maximum turn can be found from

$$ r \tan \alpha \,\cdot \theta_{max}= H $$

The coordinates for Python 3d plot are

helix

$$ x= r \cos \theta,\quad y= r \sin \theta,\quad z= r \tan \alpha \cdot \theta $$

It is better to include base and top circles also in the plot

base circle

$$ x= r \cos \theta,\quad y= r \sin \theta,\quad z= 0 $$

top circle

$$ x= r \cos \theta,\quad y= r \sin \theta,\quad z= H $$

and show all three together in a single 3d projection