#!/usr/local/bin/cz -- Main() paper(640, 480) dt = angle2rad(1) num r = 480/2*.9 num a = 0 spectrum() # cycle() def cycle() repeat spectrum() num power # spin() pulse_spin(red) pulse_spin(green) pulse_spin(blue) def X Sin(a)*r def Y Cos(a)*r # these REALLY want to be local macros! def spectrum() move(X, Y) for a = 0 ; a<360.5 ; ++a rainbow(a+0.5) move(0, 0) triangle(X, Y) Paint() Rsleep(0.01) num dt def spin() rb_red_angle += 1.6*dt rb_green_angle += 2*dt rb_blue_angle += 1*dt def pulse(which) for power=0; power < 360.1; power += 5 rb_^^which^^_power = (Cos(power)+1)/2 * 0.8 spectrum() def pulse_spin(which) pulse(which) spin() use main use m use gr use error use time use io