The previous post looked at how to plot the spiral of Theodorus shown below.

We stopped the construction where we did because the next triangle to be added would overlap the first triangle, which would clutter the image. But we could certainly have kept going.

If we do keep going, then the set of hypotenuse angles will be dense in the circle, with no repeats.

The *n*th triangle has sides of length 1 and √*n*, and so the tangent of *n*th triangle’s acute angle is 1/√*n*. The angle formed by the *n*th hypotenuse is thus

arctan(1) + arctan(1/√2) + arctan(1/√3) + … + arctan(1/√*n*).

Here’s a plot of the first 99 hypotenuse angles.

Here’s the code that produced the plot.

from numpy import * import matplotlib.pyplot as plt plt.axes().set_aspect(1) N = 100 theta = cumsum(arctan(arange(1,N)**-0.5)) plt.scatter(cos(theta), sin(theta)) plt.savefig("theodorus_angles.svg")

If we change `N`

to 500 we get a solid ring because the angles are closer together than the default thickness of dots in a scatterplot.

If we let N go to infinity, does the distribution of angles tend to the uniform distribution?

Kenneth: Yes, the angles are uniformly distributed.

Very minor comment, but, since you were only interested in angles and not magnitudes, you could have saved a lot of sines and cosines by choosing a polar plot. That’s the way I approached it any way. Same plot, of course.