racket/collects/graphics/turtle-test.rkt
2010-04-27 16:50:15 -06:00

46 lines
1.5 KiB
Racket

(module turtle-test mzscheme
(require mred
mzlib/class
mzlib/math
"turtle-examples.ss"
"turtles.ss")
(define frame (make-object frame% "Turtle Examples"))
(define options
`(("Triangle" ,(lambda () (regular-poly 3 100)))
("Hexagons" ,(lambda () (regular-polys 6 10)))
("Spokes" ,spokes)
("Spyro Gyra" ,spyro-gyra)
("Neato" ,neato)
("Graphics BExam" ,(lambda ()
(turn/radians (/ pi 4))
(move -150)
(turn/radians (- (/ pi 4)))
(graphics-bexam)))
("Serpinski (split)" ,(lambda () (serp serp-size)))
("Serpinski (no split)" ,(lambda () (serp-nosplit serp-size)))
("Koch (split)" ,(lambda () (koch-split koch-size)))
("Koch (no split)" ,(lambda () (koch-draw koch-size)))
("Lorenz Attractor" ,lorenz1)
("Peano" ,(lambda () (peano-position-turtle) (peano peano-size)))
("Fern" ,(lambda () (turn/radians (/ pi 2)) (move -100) (fern1 fern-size)))
("Gapped Lines" ,(lambda () (gapped-lines)))))
(for-each (lambda (test)
(send
(make-object button%
(car test)
frame
(lambda x
(turtles #t)
(clear)
(yield)
((cadr test))))
stretchable-width #t))
options)
(make-object grow-box-spacer-pane% frame)
(send frame show #t))