This question has vexed me for the 20 years we've lived at my current house. There is a fir tree in the front that I dress every Christmas with lights. It grows. I prune it. This is what it looks like with the lights on...

Christmas lights on tree

The bulbs (purple dots) are all on a single string that I start at the top and helically wrap down to the bottom. There are 100 bulbs spaced 300mm apart. I have decided that the tree looks best if the height is twice the width at the base.

Q. What height should I maintain the tree at so that all the bulbs are equispaced from each other? I take this to mean that the next wrap around the tree is 300mm in Z below the previous wrap. Not perfect equidistance, but it will do for the neighbours and me.

(There are similar questions, but I believe non so specific.)

  • $\begingroup$ So the distance between the Christmas balls is 300, AND the distance between each twist is also 300? $\endgroup$ – Antoni Parellada Dec 1 '16 at 1:38
  • $\begingroup$ Tall enough to reach the ground. Abraham Lincoln. $\endgroup$ – Will Jagy Dec 1 '16 at 2:00
  • 3
    $\begingroup$ You need a cylindrical tree. $\endgroup$ – fleablood Dec 1 '16 at 2:02
  • $\begingroup$ @AntoniParellada Correct. $\endgroup$ – Paul Uszak Dec 1 '16 at 2:23

Nice question! I learned a few things as I was looking for the solution.

I assume that the length of your light cord is $0.3\text{ meters} \times 99 = 29.7$m (explanation: In the picture you posted, it seems that the cord starts and ends with a light bulb, so there are $99$ segments in between, each with a length of $0.3$m.

I also assume (as you state in the comments) that you want each twist to be $0.3$m apart. Note that this is not the same as a bulb being equidistant with the bulbs around it, as the bulbs on different twists will be somewhat further apart than $0.3$m. But it is a good enough approximation. Besides, I think that your original restriction (exactly equidistant bulbs) might not be possible with a conical spiral. In any case, since you are fine with each twist being $0.3$m apart, we will work with this assumption, as it makes the problem easier to solve.

The general parametric equations that define a conical spiral are: $$\begin{array}{rl} x =& t\cdot r\cdot \cos(\alpha \cdot t)\\ y =& t\cdot r\cdot \sin(\alpha \cdot t) \\ z =& t \end{array} $$ Where $t$ is a variable that expresses the vertical distance from the tip of the cone, $r$ is the radius of the cone at $t=1$ and $a$ is a parameter that affects how densely the twists are wound around the cone. The bigger the $a$ the more dense the winding.

What is $r$ in our problem? We want the height to be double the diameter so at distance $1$m from the cone tip we simply want $r = \frac14$ meters (all distance units will be expressed in meters).

What should $\alpha$ be? Setting $\alpha \cdot t = 2\pi$ means a full turn/twist around the cone, and since we want the starting point of the twist with the ending point of the twist to be $0.3$m apart, this means that $\alpha = \frac{2\pi}{0.3}$. Edit: no, this means that they are $0.3$m apart in the vertical direction ($t$ is vertical distance). What we need is that the spirals are $0.3$m apart on the surface of the cone. So, how much is $t$ if the distance on the surface of the cone is $0.3$? If we take a cross section of the cone we can form a right triangle, where the hypotenuse is $0.3$, one side (the vertical distance) is $t$, and the other side is $t/4$. Applying the pythagorean theorem we find that $t = 0.3\cdot \frac{4}{\sqrt{17}}$. So we want $\alpha \cdot \left( 0.3\cdot \frac{4}{\sqrt{17}}\right) = 2\pi \iff \alpha = \frac{2\pi}{0.3} \cdot \frac{\sqrt{17}}{4}$

We have established parameters $\alpha$ and $r$, so our conical spiral is defined fully. But how to we find the height of the cone/tree? The arc length of a conical spiral is: $$\text{length}(t) = \frac12t \sqrt{1+r^2(1+\alpha^2t^2)}+\frac{1+r^2}{2\alpha r}\text{sinh}^{-1}\left( \frac{\alpha\cdot r\cdot t}{\sqrt{1+r^2}}\right)$$

Plugging in $\text{length}(t)=29.7$, $r=\frac14$, $\alpha = \frac{2\pi}{0.3}\cdot \frac{\sqrt{17}}{4}$ we can solve for t to get $t \approx \bbox[5px,border:2px solid red]{3.295}$ meters.

So if you make your tree about $3.3$ meters tall and make your twists about $0.3$ meters apart, then you will have the coverage that you want.

Here's how your light bulb spiral might look like (it was a bit tricky to place the $100$ bulbs on the graph, I was happy that I succeeded in the end):

$\hspace{2cm}$Christmas tree conical spiral

And here's a side view of the spiral. As you can see there are about $11.5$ twists.

$\hspace{3cm}$Christmas tree conincal spiral side view

You can find the Python code I wrote to create the graphs here.

I hope this answer can help you with your lights installation. Merry Christmas! :)

  • $\begingroup$ Although I have to say that the height does not look double the base in the figure. I 'll investigate later. $\endgroup$ – Thanassis Dec 1 '16 at 5:23
  • 1
    $\begingroup$ Looks like you imposed the vertical distance between turns to be $0.3$ m, but I think you should consider instead the distance along the surface, which is greater by a factor of $\sqrt5/2$. $\endgroup$ – Aretino Dec 1 '16 at 10:44
  • $\begingroup$ Ah yes, sorry. It's a picture shamelessly stolen from Google Images. I didn't know how to create a mathematically correct one. I did though add the bulb dots. $\endgroup$ – Paul Uszak Dec 1 '16 at 11:44
  • $\begingroup$ @Aretino ah yes, you are right! I'll correct it. But why is the factor $\sqrt{5}/2$? Shouldn't it be $\sqrt{17}/4$? $\endgroup$ – Thanassis Dec 1 '16 at 15:18
  • 1
    $\begingroup$ @PaulUszak your picture is fine, I was talking about the graphs I posted. And the simple answer to why my spirals seem "short" is that the z axis has a different scale than x, y. If they were drawn on the same scale, the cone would appear elongated (as it really is). $\endgroup$ – Thanassis Dec 1 '16 at 15:22

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.