%!PS % A quickie number spiral (of the primes) as per http://numberspiral.com/ % 2005-11-28 /paperx 8.5 72 mul def % letter size /papery 11 72 mul def paperx 2 div papery 2 div translate % start in the center /max 100000 def % How high shall we count? Be careful of overflows. /mark? { % n mark? boolean % Your filter here. This tests for primes (the dumb way). % Try, e.g., { 3 mod 0 eq } for some neat patterns. /n exch def n 1 eq { false } { n 2 mod 0 eq { n 2 eq } { /divide? false def % variables are poor style 3 2 n sqrt ceiling { n exch mod 0 eq { /divide? true def exit } if } for divide? not } ifelse } ifelse } bind def 0 1 max { dup mark? { dup sqrt dup 360 mul dup rotate % Pretty dragon pattern (not quite as cool with thin markings % like the primes, of course; try it with every integer): dup floor sub 1.0 1.0 sethsbcolor 0 1 0 360 arc fill sqrt 360 mul neg rotate % Got a better idea? } if } bind for showpage