summaryrefslogtreecommitdiff
path: root/coding-exercises/2/50.rkt
blob: 373e22aba70c6c606d39bb0f09e27170291fd7de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#lang racket
(require "../../shared/pict.rkt")
(require "../../shared/lists.rkt")
(require sicp-pict)

(define (flip-horiz painter)
  (transform-painter
    painter
    (make-vect 1 0)
    (make-vect 0 0)
    (make-vect 1 1)))

(define (flip-vert painter)
  (transform-painter
   painter
   (make-vect 0 1)
   (make-vect 1 1)
   (make-vect 0 0)))

(define (<-rotate180 painter)
  (flip-horiz (flip-vert painter)))
(define (<-rotate270 painter)
  (transform-painter
   painter
   (make-vect 0 1)
   (make-vect 0 0)
   (make-vect 1 1)))

(paint einstein)
(paint (flip-horiz einstein))
(paint (flip-vert einstein))
(paint (<-rotate180 einstein))
(paint (<-rotate270 einstein))