Implement till 2.53
parent
eeec256c6b
commit
703e032a08
|
@ -258,12 +258,64 @@
|
|||
(display "\nex-2.51\n")
|
||||
|
||||
; First implementation is at the beginning of this file.
|
||||
(draw-to-py ((corner-split painter-wave 4) simple-frame) "corner-split-4")
|
||||
(draw-to-py ((below painter-x painter-diamond) simple-frame) "x-below-diamond")
|
||||
(draw-to-py ((below painter-x painter-diamond) simple-frame) "x-below-diamond-1")
|
||||
|
||||
(define (below painter1 painter2)
|
||||
(rotate270 (beside (rotate90 painter2) (rotate90 painter1))))
|
||||
|
||||
(draw-to-py ((below painter-x painter-diamond) simple-frame) "x-below-diamond-2")
|
||||
|
||||
|
||||
(display "\nex-2.52\n")
|
||||
|
||||
|
||||
; a.
|
||||
(define painter-wave-smile
|
||||
(segments->painter
|
||||
(list (make-line 0.4 0 0.5 0.33)
|
||||
(make-line 0.5 0.33 0.6 0.0)
|
||||
(make-line 0.25 0.0 0.33 0.5)
|
||||
(make-line 0.33 0.5 0.3 0.6)
|
||||
(make-line 0.3 0.6 0.1 0.4)
|
||||
(make-line 0.1 0.4 0.0 0.6)
|
||||
(make-line 0.0 0.6 0.0 0.8)
|
||||
(make-line 0.0 0.8 0.1 0.6)
|
||||
(make-line 0.1 0.6 0.33 0.65)
|
||||
(make-line 0.33 0.65 0.4 0.65)
|
||||
(make-line 0.4 0.65 0.35 0.8)
|
||||
(make-line 0.43 0.87 0.46 0.87) ; left eye
|
||||
(make-line 0.54 0.87 0.57 0.87) ; right eye
|
||||
(make-line 0.45 0.75 0.55 0.75) ; smile
|
||||
(make-line 0.35 0.8 0.4 1.0)
|
||||
(make-line 0.4 1.0 0.6 1.0)
|
||||
(make-line 0.75 0.0 0.6 0.45)
|
||||
(make-line 0.6 0.45 1.0 0.15)
|
||||
(make-line 1.0 0.15 1.0 0.35)
|
||||
(make-line 1.0 0.35 0.8 0.65)
|
||||
(make-line 0.8 0.65 0.6 0.65)
|
||||
(make-line 0.6 0.65 0.65 0.8)
|
||||
(make-line 0.65 0.8 0.6 1.0))))
|
||||
|
||||
(draw-to-py (painter-wave-smile simple-frame) "wave-smile")
|
||||
|
||||
; b.
|
||||
(define (corner-split-adapted painter n)
|
||||
(if (= n 0)
|
||||
painter
|
||||
(let ((up (up-split painter (- n 1)))
|
||||
(right (right-split painter (- n 1))))
|
||||
(let ((top-left up)
|
||||
(bottom-right right)
|
||||
(corner (corner-split-adapted painter (- n 1))))
|
||||
(beside (below painter top-left)
|
||||
(below bottom-right corner))))))
|
||||
|
||||
(draw-to-py ((corner-split-adapted painter-wave 3) simple-frame) "corner-split-3")
|
||||
|
||||
; c. didn't do anything here
|
||||
(define (square-of-four tl tr bl br)
|
||||
(lambda (painter)
|
||||
(let ((top (beside (tl painter) (tr painter)))
|
||||
(bottom (beside (bl painter) (br painter))))
|
||||
(below bottom top))))
|
||||
|
||||
|
|
Loading…
Reference in New Issue