Implement till 2.53

main
Felix Martin 2020-11-01 12:19:35 -05:00
parent eeec256c6b
commit 703e032a08
2 changed files with 54 additions and 2 deletions

View File

@ -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))))

0
ex-2_53-xx.scm Normal file
View File