Probably a bit off-topic, but since I recently learned postscript, I think it would be worth showing how that cute language would deal with it:
%!PS-Adobe-3.0
% The next line defines the number of "slices"
/n { 3 } def
% n i slice
/slice {
newpath
dup
% n i i
dup 0 exch
% n i i 0 i
180 0 arcn
% n i
2 copy 2 copy add
% n i n i n+i
3 1 roll sub
% n i n+i n-i
0 exch 180 0 arc
% n i
2 copy 2 copy add 1 add
% n i n i n+i+1
3 1 roll sub 1 sub
% n i n+i+1 n-i-1
0 exch 0 180 arcn
% n i
dup 1 add dup
% n i i+1 i+1
0 exch 0 180 arc
gsave
exch 1 sub div setgray fill
grestore
0 setgray stroke
} def
50 400 translate
200 n div dup scale
.005 n mul setlinewidth
0 1 n 1 sub {
dup n exch slice
dup
n 1 sub div 1 sub neg setgray
2 mul 1 add 0 .2 0 360 arc fill
} for
showpage
Besides being a Turing-complete language, it's a very nice format for such geometric constructions, and has the advantage of being fully vectorial and of being understood by a few printers, so your pc doesn't even have to compute all those arcs :-) As an additional plus, it is quite easy to generate via perl.
Anyways, ++ for the node (or to put it in our native language: bella prova secco ;-). I especially like the three-fold version.
Antonio
The stupider the astronaut, the easier it is to win the trip to Vega - A. Tucket