#!/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
