72 lines
No EOL
2.7 KiB
Scheme
72 lines
No EOL
2.7 KiB
Scheme
#lang sicp
|
|
|
|
(#%require sicp-pict)
|
|
|
|
(define outline-painter
|
|
(segments->painter
|
|
(list (make-segment (make-vect 0 0)
|
|
(make-vect 0 1))
|
|
(make-segment (make-vect 0 1)
|
|
(make-vect 1 1))
|
|
(make-segment (make-vect 1 1)
|
|
(make-vect 1 0))
|
|
(make-segment (make-vect 1 0)
|
|
(make-vect 0 0)))))
|
|
(define x-painter
|
|
(segments->painter
|
|
(list (make-segment (make-vect 0 0)
|
|
(make-vect 1 1))
|
|
(make-segment (make-vect 0 1)
|
|
(make-vect 1 0)))))
|
|
(define diamond-painter
|
|
(segments->painter
|
|
(list (make-segment (make-vect 0.5 0)
|
|
(make-vect 1 0.5))
|
|
(make-segment (make-vect 1 0.5)
|
|
(make-vect 0.5 1))
|
|
(make-segment (make-vect 0.5 1)
|
|
(make-vect 0 0.5))
|
|
(make-segment (make-vect 0 0.5)
|
|
(make-vect 0.5 0)))))
|
|
|
|
; this will be a roundabout drawing, just to
|
|
; make the lines nice and connectable between
|
|
; wave painters, I'm not an artist.
|
|
(define wave
|
|
(segments->painter
|
|
(list (make-segment (make-vect 0 0.55)
|
|
(make-vect 0.2 0.5))
|
|
(make-segment (make-vect 0.2 0.5)
|
|
(make-vect 0.4 0.6))
|
|
(make-segment (make-vect 0.4 0.6)
|
|
(make-vect 0.35 0.8))
|
|
(make-segment (make-vect 0.35 0.8)
|
|
(make-vect 0.4 1))
|
|
(make-segment (make-vect 0.6 1)
|
|
(make-vect 0.65 0.8))
|
|
(make-segment (make-vect 0.65 0.8)
|
|
(make-vect 0.6 0.6))
|
|
(make-segment (make-vect 0.6 0.6)
|
|
(make-vect 0.8 0.7))
|
|
(make-segment (make-vect 0.8 0.7)
|
|
(make-vect 1 0.55))
|
|
(make-segment (make-vect 1 0.45)
|
|
(make-vect 0.8 0.6))
|
|
(make-segment (make-vect 0.8 0.6)
|
|
(make-vect 0.6 0.5))
|
|
(make-segment (make-vect 0.6 0.5)
|
|
(make-vect 0.6 0.3))
|
|
(make-segment (make-vect 0.6 0.3)
|
|
(make-vect 0.7 0))
|
|
(make-segment (make-vect 0.6 0)
|
|
(make-vect 0.5 0.2))
|
|
(make-segment (make-vect 0.5 0.2)
|
|
(make-vect 0.4 0))
|
|
(make-segment (make-vect 0.3 0)
|
|
(make-vect 0.4 0.3))
|
|
(make-segment (make-vect 0.4 0.3)
|
|
(make-vect 0.4 0.5))
|
|
(make-segment (make-vect 0.4 0.5)
|
|
(make-vect 0.2 0.4))
|
|
(make-segment (make-vect 0.2 0.4)
|
|
(make-vect 0 0.45))))) |