Rusin’s disco ball |
golden angles |
Saff & Kuijlaars |
Examples of three algorithms for distributing nodes fairly evenly over a sphere. Those on the middle and right slice the sphere into parallel bands of equal area (much narrower than the white discs), and put one node (center of a disc) somewhere in each band. Saff & Kuijlaars place the nodes along a spiral path across the bands, keeping the distance between turns of the spiral roughly constant. Failing to grok how their rule does that, I approach it from another angle.
In the ideal limit (N approaching infinity), the unit sphere is covered exactly once by a strip of width 2√(π/N) and length 2√(Nπ); the strip is divided into N nearly square pieces, with a node in the center of each. What parametric functions of -1 < t < 1 describe the midline of the strip?
(In what follows, θ and φ have their conventional meanings of longitude and co-latitude, i.e. angular distance from a pole.)
The equal slices rule gives cosφ = t. I seek a function θ(t) such that the derivative along the path has constant magnitude:
ds² = dφ² + sin²φ dθ² = Nπ dt²
I proceed:
–sinφ dφ = dt; dφ = –dt / sinφ = –dt / √(1–t²)
ds² = Nπ dt² = ( dt² / (1–t²) ) + (1–t²) dθ²
(1–t²) dθ² = dt² (Nπ – 1 / (1–t²))
= dt² (Nπ – Nπt² – 1) / (1–t²)dθ² = dt² (Nπ – Nπt² – 1) / (1–t²)²
So I ask the Wolfram Integrator to integrate
Sqrt[ n*Pi - n*Pi*x^2 - 1 ] / (1-x^2)
and it says

Now, I do make mistakes; I’ve worked the problem several times now and got subtly different answers. Last time around, in fact, there were no imaginary coefficients; so I made this in PoV-Ray:

Not quite what I’m looking for. Can you spot where I went wrong?
comment by Andrew A. Gill — Tuesday, 2005 February 22, 16:04
Still. Pret-ty.
comment by chris landauer — Tuesday, 2005 February 22, 16:53
one problem is that when t=±1, the integrand is undefined — it might be easier to compute dt/dθ, instead of the reciprocal
also, the square roots are problematic, since some terms are negative at t=±1: for example,
n*pi*(1-t^2)-1
is -1 when t=±1, and is positive for the midrange.
comment by Anton — Tuesday, 2005 February 22, 17:37
The function need not be valid all the way to the pole: I only need it for |t|≤(N-1)/N.
But never mind, it’s not a bad idea to eliminate t rather than φ. So:
. . so we integrate
Sqrt[n*Pi-csc[x]^2]and get —— not even an attempt. Wow.
Well, the point about square roots suggests that my blunder was earlier in the process.
comment by chris landauer — Tuesday, 2005 February 22, 21:42
this integral is much better, but it still needs special estimates at the boundaries (here x is phi, not t as it was in the other integral, so this integral needs to go from x=0 to x=pi, where csc[x] is infinite at both endpoints)
but it is otherwise probly ok, even if not closed form –
it is easy to show that for
|t| < 1,
we have
n > pi / (2*pi – 1) (~0.6),
and we can show that
n^2 / (2*n-1) < (n-1)/n) using a special case to avoid the weirdness in the integrals
comment by Anton — Tuesday, 2005 March 1, 18:44
Again, I seek an antiderivative valid for (1–N)/N ≤ t = cosφ ≤ (N–1)/N, not a definite integral from pole to pole.
comment by Alex — Monday, 2005 March 14, 16:55
Wow; what a wonderful use of both POVRay and Mathematica. (first time visitor)