nlines = 128
nr = 50
innerrad = 1
outerrad = 8
diff = outerrad - innerrad
B: box wid outerrad*2 ht outerrad*2 outline "red" shaded "red"
C: circle rad outerrad at B
circle rad innerrad at C shaded "black"
P[0]: C+(innerrad,0)
t = 0
for i=1 to nr do {
r = innerrad+i/nr*diff
t = t + i/nr*(-pi_/2)/nr
P[i]: C+(rect_(r,t))
}
dth = twopi_/nlines
R: (cos(dth),-sin(dth))
S: (sin(dth),cos(dth))
for j = 0 to nlines-1 do {
for i=0 to nr do {
X: P[i]-C
Q[nr-i]: (dot2(R,X),dot2(S,X)) + C
}
shade(j%2,
fitcurve(P,nr)
line from P[nr] to Q[0]
fitcurve(Q,nr)
line from Q[nr] to P[0]
)
for i=0 to nr do { P[i]: Q[nr-i] }
}