racket/collects/frtime/demos/circles.ss
2008-02-23 09:42:03 +00:00

24 lines
587 B
Scheme

(require frtime/animation
frtime/etc
frtime/gui)
(define radius (make-slider "Radius" 100 200 150))
(define speed (* .02 (make-slider "Speed" 0 10 5)))
(define n (make-slider "Num circles" 1 10 6))
(define ratio (add1 (* .2 (make-slider "Ratio" 1 5 2))))
(define phase (wave speed))
(define center (make-posn 200 200))
(display-shapes
(build-list
n
(lambda (i)
(make-ring
(posn+ center
(posn*
(make-posn (cos phase) (sin phase))
(* radius (- 1 (expt ratio (- i))))))
(/ radius (expt ratio i))
"gray"))))