# Tl;dr

We derive the length of a string wrapped around a cylinder using two methods: a complicated one that includes vector calculus and a simple one that uses clever tricks and geometry.

---

During my first year at Caltech as a PhD student in Mechanical Engineering I took a solid mechanics class. In this class we studied the mechanics of thin structures, rods, shells, and plates. One specific lecture that stood out to me was when Professor Ravichandran derived the length of a spring that is coiled, see **fig. 1**. This problem is equivalent to finding the length of a string that is wrapped around a cylinder where the string has zero diameter and traces out the path of the centerline of the spring. I thought this was super cool and so I went back and redid the derivation on my own and thought I would share it :).

Examine the string wound about the cylinder in **fig. 2**. We define a set of three basis vectors $B = \{\hat{e_1}, \hat{e_2}, \hat{e_3}\}$. We choose cartesian coordinates but this derivation works with cylindrical coordinates as well. Our goal is to first determine the position of any point along the string using these basis vectors, and then to integrate along the length of the string, using this vector, to determine the length of the string. At that point we will be finished.

Let us define the parameters we will be working with:

\begin{align*}

l &= \text{the length of the string}\\\

\vec{s} &= \text{the position of any point along the length of the string}\\\

H &= \text{the height of the cylinder that the string is wrapped around}\\\

P &= \text{the pitch of the string, or the vertical height distance of the string after one full rotation}\\\

R &= \text{the radius of the cylinder the string is wrapped around}

\end{align*}

So first we need to find any point on the string, $\vec{s}$. We define this vector as a linear combination of some functions times the basis vectors, $B$, i.e.

\begin{align*}

\vec{s} = f_1(\theta) \hat{e_1} + f_2(\theta) \hat{e_2} + f_3(\theta) \hat{e_3}.

\end{align*}

In order to find these three functions we first project the wrapped string into the plane defined by the vectors $\hat{e_2}$ and $\hat{e_1}$, see **fig. 2**. Thinking back to polar coordinates we can find the position of any point along the circle therefore giving us the first two functions

\begin{align*}

f_1 &= R \cos (\theta)\\

f_2 &= R \sin (\theta).

\end{align*}

That wasn't too bad, but now we have to find $f_3$, or the function that dictates how the height position changes as we move along the string. Observe in **fig. 2**, in the $\hat{e_3}$ and $\hat{e_1}$ projected plane, that for one full rotation, i.e. if we start at one point on the string and go a full 2$\pi$ along the string then we expect that $f_3 = P$, the pitch of the string. So we have that

\begin{align*} \text{one rotation (sweep through 2$\pi$)} &\rightarrow \text{$P$ increase in height}\\ \text{one half rotation (sweep through $\pi$)} &\rightarrow \text{$P$/2 increase in height} \\ \text{$q$ rotations} &\rightarrow \text{$qP$ increase in height}. \end{align*}

But what is $q$? Based off of the above we think that it should somehow depend on how much $\theta$ we sweep through. We also note that $q$ should be $1$ when we sweep through 2$\pi$. So with this we take $q$ to be

\begin{align*} q &= \frac{\text{how much I sweep along a circle of radius $R$}}{\text{the circumference of a circle of radius $R$}}\\ q &= \frac{\theta R}{2\pi R}\\ q &= \frac{\theta}{2\pi}, \qquad (q = 1 \text{when $\theta = 2\pi$}).\end{align*}

So now we know $f_3$

\begin{align*} f_3 = \frac{\theta P}{2\pi}, \end{align*}

and we can now determine the position of any point on the string with the vector $\vec{s}$

\begin{align*} \vec{s} = R\cos(\theta) \cdot \hat{e_1} + R\sin(\theta) \cdot \hat{e_2} + \frac{\theta P}{2\pi} \cdot \hat{e_3}. \end{align*}

Great! At this point now we need to use a bit of calculus **[1]**. Lets say we have a curve of length $l$ parameterized by $\theta$ which varies from $[a, b]$, and that the position of any point along the curve is given by $\vec{s}(\theta) = f_1(\theta) \hat{e_1} + f_2(\theta) \hat{e_2} + f_3(\theta) \hat{e_3}$. Since we are working in cartesian coordinates then we have that

\begin{align*}\vec{ds} &= df_1(\theta) \hat{e_1} + df_2(\theta) \hat{e_1} + df_3(\theta) \hat{e_1}\end{align*}

and the magnitude, denoted by $\| \cdot \|$, is

\begin{align*} \|\vec{ds}\| &= \sqrt{df_1^2 + df_2^2 + df_3^2}\\ &= \sqrt{\left(\frac{df_1}{d\theta}\right)^2 + \left(\frac{df_2}{d\theta}\right)^2 + \left(\frac{df_3}{d\theta}\right)^2} d\theta. \end{align*}

We could have also done this using a little bit of geometry, check out **fig. 3**.

Pythagorus tells us that

\begin{align*} \| \vec{ds}\|^2 &= df_1^2 + df_2^z + df_3^2\\ \|\vec{ds}\| &= \sqrt{df_1^2 + df_2^2 + df_3^2}\\ \|\vec{ds}\| &= \sqrt{\left(\frac{df_1}{d\theta}\right)^2 + \left(\frac{df_2}{d\theta}\right)^2 + \left(\frac{df_3}{d\theta}\right)^2} d\theta\end{align*}

Now to find the length of the curve, we use our knowledge of calculus where the length of the curve is given by $l$ which is computed by

\begin{align*} l &= \int^{l}_{0} \|\vec{ds}\| \\ &= \int^{b}_{a} \sqrt{\left(\frac{df_1}{d\theta}\right)^2 + \left(\frac{df_2}{d\theta}\right)^2 + \left(\frac{df_3}{d\theta}\right)^2} d\theta.\end{align*}

The most convenient bounds on our integral, parameterized by $\theta$ are $0\leq \theta \leq 2\pi$. By choosing these bounds we have to note that this will result in an integral that calculates the length of the string after the string is wrapped around the cylinder **once**. After this computation we have to multiply this result by the number of times the string is wrapped once around the cylinder to find the total length of the string.

Now we calculate the integral

\begin{align*} l &= \int^{2\pi}_{0} \sqrt{\left(\frac{df_1}{d\theta}\right)^2 + \left(\frac{df_2}{d\theta}\right)^2 + \left(\frac{df_3}{d\theta}\right)^2} d\theta \\ &= \int^{2\pi}_{0} \sqrt{\left(-R\sin(\theta)\right)^2 + \left(R\cos(\theta)\right)^2 + \left(\frac{P}{2\pi}\right)^2} d\theta \\ &= \int^{2\pi}_{0} \sqrt{R^2 + \left(\frac{P}{2\pi}\right)^2} d\theta \\ &= 2\pi \sqrt{R^2 + \left(\frac{P}{2\pi}\right)^2} \end{align*}

So we have just calculated the length of a string that has been wrapped **once** around the cylinder. But what about if the string had been wrapped three times around cylinder or $\pi$ times around the cylinder, or $n$ times around? Well first given a cylinder of height $H$ wrapped at a pitch $P$ we can find out this number $n$

\begin{align*}n &= \frac{\text{Height of cylinder}}{\text{Height per wrap (Pitch)}}\\ &= \frac{H}{P}.\end{align*}

And then finally we have that the length of a string wrapped around a cylinder of height $H$ and radius $R$, at pitch $P$ is given by

\begin{align*} l = 2\pi \frac{H}{P} \sqrt{R^2 + \left(\frac{P}{2\pi}\right)^2}. \end{align*}

But before we call it quits lets rewrite this equation in a way that will lead to a pretty cool result. First lets factor out the $(1/2\pi)^2$ then we get

\begin{align} l = \frac{H}{P}\sqrt{(2\pi R)^2 + P^2}. \end{align}.

Interestingly enough we see that the circumference of the cylinder $2\pi R$ is in there. So what happens if we take our original cylinder and "unroll it"? [Note this is a trick I learned from **[2] **after writing the first half of this post and I thought it was so cool I had to share].

Lets start with a cylinder that has the string wrapped around it once, i.e. the pitch $P$ is equal to the height of the cylinder $H$. Then lets "unroll it", and we get a right triangle, **fig. 4**!!

The base of the triangle is then the circumference of the base of the cylinder, the hypotenuse is the length of the string, and the height the height of the cylinder. We can use handy ol' Pythagorean Theorem to calculate $l$

\begin{align} l^2 &= (2\pi R)^2 + H^2\\ \implies l &= \sqrt{(2\pi R)^2 + H^2}.\end{align}

Now compare this result with the result we derived in $l$, **eq. 1**. If we take $P = H$ in **eq. 1**, as we did above, then we get the exact same result as **eq. 3**! So this means that we were able to correctly perform the derivation using vector calculus and simple geometry arguments. Wohoo!

# References

**[1] **http://mathworld.wolfram.com/ArcLength.html

**[2] **https://www.cmrp.com/blog/faq/calculations/how-to-quickly-calculate-the-length-of-a-helical-curve.html