pro ring_map_multi_watch, delay, a sigma = 185.7 Rs = 60.4 red = [0, 1, 1, 0, 0] green = [0, 1, 0, 0, 1] blue = [0, 1, 0, 0, 0] device, decomposed = 0 window, 0, xsize = 600, ysize = 600 tvlct, 255*red, 255*green, 255*blue plot, [0, 0], [0, 0], /nodata, xrange = [-sigma, sigma], yrange = [-sigma, sigma], xstyle = 1, ystyle = 1, color = 0, background = 1, xtitle = 'r!In!n cos( theta!In!N )', ytitle = 'r!In!N sin( theta!In!N )', title = 'Rings, a=' + string(a) ; itterations = 1000 ; skip = 900 itterations = 100 n = 100000L rmin = Rs rmax = sigma r0 = findgen(n) * (rmax-rmin) / n + rmin rn = r0 rn_m1 = r0 tn = rn * 0 plot, rn*cos(tn), rn*sin(tn), xrange = [-sigma, sigma], yrange = [-sigma, sigma], xstyle = 1, ystyle = 1, color = 0, background = 1, xtitle = 'r!In!n cos( theta!In!N )', ytitle = 'r!In!N sin( theta!In!N )', title = 'Rings, a=' + string(a) +', n ='+string(0), psym = 3 for i = 0L, itterations do begin begtime = systime(1) while( (systime(1) - begtime) lt (delay/1000.0) ) do i = i tn = tn + 2*!PI*((sigma/rn)^1.5) rold = rn rn = 2.0 * rn - rn_m1 - a*cos(tn)/( (rn - sigma)^2 ) rn_m1 = rold plot, rn*cos(tn), rn*sin(tn), xrange = [-sigma, sigma], yrange = [-sigma, sigma], xstyle = 1, ystyle = 1, color = 0, background = 1, xtitle = 'r!In!n cos( theta!In!N )', ytitle = 'r!In!N sin( theta!In!N )', title = 'Rings, a=' + string(a) +', n ='+string(i), psym = 3 end theta = findgen(201) * !PI / 100 oplot, Rs*sin(theta), Rs*cos(theta), color = 2 oplot, sigma*sin(theta), sigma*cos(theta), color = 2 oplot, sigma*sin(theta)/1.5, sigma*cos(theta)/1.5, color = 3 xyouts, sigma/1.5, 0, '1.5', color = 3 oplot, sigma*sin(theta)/2, sigma*cos(theta)/2, color = 3 xyouts, sigma/2, 0, '2.0', color = 3 oplot, sigma*sin(theta)/2.5, sigma*cos(theta)/2.5, color = 3 xyouts, sigma/2.5, 0, '2.5', color = 3 oplot, sigma*sin(theta)/3, sigma*cos(theta)/3, color = 3 xyouts, sigma/3, 0, '3.0', color = 3 end