diff options
Diffstat (limited to 'ex/2/51.rkt')
-rw-r--r-- | ex/2/51.rkt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/ex/2/51.rkt b/ex/2/51.rkt new file mode 100644 index 0000000..975c064 --- /dev/null +++ b/ex/2/51.rkt @@ -0,0 +1,45 @@ +;;;; License: CC0-1.0 + +#lang racket + +(require "46.rkt") +(require "49.rkt") +(require "50.rkt") + + +(define (beside painter1 painter2) + (let ((split-point (make-vect 0.5 0.0))) + (let ((paint-left + (transform-painter + painter1 + (make-vect 0.0 0.0) + split-point + (make-vect 0.0 1.0))) + (paint-right + (transform-painter + painter2 + split-point + (make-vect 1.0 0.0) + (make-vect 0.5 1.0)))) + (lambda (frame) + (paint-left frame) + (paint-right frame))))) + + +(define (below painter1 painter2) + (let ((split-point (make-vect 0.0 0.5))) + (let ((paint-above + (transform-painter + painter2 + (make-vect 0.0 0.0) + (make-vect 1.0 0.0) + split-point)) + (paint-below + (transform-painter + painter1 + split-point + (make-vect 1.0 0.5) + (make-vect 0.0 1.0)))) + (lambda (frame) + (paint-above frame) + (paint-below frame))))) |