From 1a8d681ed2e0e9e62fac784bca5c9eac9b01cd60 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Wed, 11 Nov 2009 02:20:18 +0000 Subject: [PATCH] added a bunch more polygons svn: r16681 --- collects/2htdp/image.ss | 3 + collects/2htdp/private/image-more.ss | 36 +++++-- collects/mrlib/image-core.ss | 45 +++++---- .../teachpack/2htdp/scribblings/image-toc.ss | 81 ++++++++-------- .../teachpack/2htdp/scribblings/image.scrbl | 91 +++++++++++++----- .../teachpack/2htdp/scribblings/img/10.png | Bin 685 -> 173 bytes .../teachpack/2htdp/scribblings/img/11.png | Bin 659 -> 113 bytes .../teachpack/2htdp/scribblings/img/12.png | Bin 674 -> 122 bytes .../teachpack/2htdp/scribblings/img/13.png | Bin 1246 -> 744 bytes .../teachpack/2htdp/scribblings/img/14.png | Bin 1553 -> 1294 bytes .../teachpack/2htdp/scribblings/img/15.png | Bin 4216 -> 456 bytes .../teachpack/2htdp/scribblings/img/16.png | Bin 1339 -> 117 bytes .../teachpack/2htdp/scribblings/img/17.png | Bin 1073 -> 496 bytes .../teachpack/2htdp/scribblings/img/18.png | Bin 3766 -> 1246 bytes .../teachpack/2htdp/scribblings/img/19.png | Bin 1058 -> 1553 bytes .../teachpack/2htdp/scribblings/img/20.png | Bin 1485 -> 4216 bytes .../teachpack/2htdp/scribblings/img/21.png | Bin 1388 -> 1339 bytes .../teachpack/2htdp/scribblings/img/22.png | Bin 1135 -> 1073 bytes .../teachpack/2htdp/scribblings/img/23.png | Bin 2161 -> 3766 bytes .../teachpack/2htdp/scribblings/img/24.png | Bin 893 -> 1058 bytes .../teachpack/2htdp/scribblings/img/25.png | Bin 282 -> 1485 bytes .../teachpack/2htdp/scribblings/img/26.png | Bin 1297 -> 1388 bytes .../teachpack/2htdp/scribblings/img/27.png | Bin 121 -> 1135 bytes .../teachpack/2htdp/scribblings/img/28.png | Bin 144 -> 2161 bytes .../teachpack/2htdp/scribblings/img/29.png | Bin 142 -> 893 bytes .../teachpack/2htdp/scribblings/img/30.png | Bin 2121 -> 282 bytes .../teachpack/2htdp/scribblings/img/31.png | Bin 2270 -> 1297 bytes .../teachpack/2htdp/scribblings/img/32.png | Bin 2368 -> 121 bytes .../teachpack/2htdp/scribblings/img/33.png | Bin 1007 -> 144 bytes .../teachpack/2htdp/scribblings/img/34.png | Bin 1000 -> 142 bytes .../teachpack/2htdp/scribblings/img/35.png | Bin 678 -> 2121 bytes .../teachpack/2htdp/scribblings/img/36.png | Bin 865 -> 2270 bytes .../teachpack/2htdp/scribblings/img/37.png | Bin 865 -> 2368 bytes .../teachpack/2htdp/scribblings/img/38.png | Bin 1039 -> 1007 bytes .../teachpack/2htdp/scribblings/img/39.png | Bin 1039 -> 1000 bytes .../teachpack/2htdp/scribblings/img/4.png | Bin 113 -> 574 bytes .../teachpack/2htdp/scribblings/img/40.png | Bin 420 -> 678 bytes .../teachpack/2htdp/scribblings/img/41.png | Bin 2314 -> 865 bytes .../teachpack/2htdp/scribblings/img/42.png | Bin 0 -> 865 bytes .../teachpack/2htdp/scribblings/img/43.png | Bin 0 -> 1039 bytes .../teachpack/2htdp/scribblings/img/44.png | Bin 0 -> 1039 bytes .../teachpack/2htdp/scribblings/img/45.png | Bin 0 -> 420 bytes .../teachpack/2htdp/scribblings/img/46.png | Bin 0 -> 2314 bytes .../teachpack/2htdp/scribblings/img/5.png | Bin 122 -> 656 bytes .../teachpack/2htdp/scribblings/img/6.png | Bin 456 -> 685 bytes .../teachpack/2htdp/scribblings/img/7.png | Bin 117 -> 659 bytes .../teachpack/2htdp/scribblings/img/8.png | Bin 496 -> 674 bytes .../teachpack/2htdp/scribblings/img/9.png | Bin 574 -> 153 bytes collects/tests/2htdp/test-image.ss | 69 ++++++++++++- 49 files changed, 231 insertions(+), 94 deletions(-) create mode 100644 collects/teachpack/2htdp/scribblings/img/42.png create mode 100644 collects/teachpack/2htdp/scribblings/img/43.png create mode 100644 collects/teachpack/2htdp/scribblings/img/44.png create mode 100644 collects/teachpack/2htdp/scribblings/img/45.png create mode 100644 collects/teachpack/2htdp/scribblings/img/46.png diff --git a/collects/2htdp/image.ss b/collects/2htdp/image.ss index bb77569424..7176c2466a 100644 --- a/collects/2htdp/image.ss +++ b/collects/2htdp/image.ss @@ -67,11 +67,14 @@ and they all have good sample contracts. (It is amazing what we can do with kids circle ellipse rectangle + square + rhombus regular-polygon star star-polygon triangle isosceles-triangle + right-triangle text text/font diff --git a/collects/2htdp/private/image-more.ss b/collects/2htdp/private/image-more.ss index 95fab9ae76..4b98439d00 100644 --- a/collects/2htdp/private/image-more.ss +++ b/collects/2htdp/private/image-more.ss @@ -151,14 +151,14 @@ (if (string? arg) (string->symbol arg) arg)] - [(width height radius) + [(width height radius side-length side-length1 side-length2) (check-arg fn-name (and (real? arg) (not (negative? arg))) 'non-negative-real-number i arg) arg] - [(dx dy factor x-factor y-factor side-length) + [(dx dy factor x-factor y-factor) (check-arg fn-name (real? arg) 'real\ number @@ -611,13 +611,21 @@ ;; rectangle (define/chk (rectangle width height mode color) - (make-image (make-polygon (rectangle-points width height) - mode - color) - (make-bb width - height - height) - #f)) + (make-a-polygon (rectangle-points width height) mode color)) + +(define/chk (square side-length mode color) + (make-a-polygon (rectangle-points side-length side-length) mode color)) + +(define/chk (rhombus side-length angle mode color) + (let* ([left-corner (make-polar side-length (+ (* pi 1/2) (/ (degrees->radians angle) 2)))] + [right-corner (make-polar side-length (- (* pi 1/2) (/ (degrees->radians angle) 2)))] + [bottom-corner (+ left-corner right-corner)]) + (make-a-polygon (list (make-point 0 0) + (make-point (real-part right-corner) (imag-part right-corner)) + (make-point (real-part bottom-corner) (imag-part bottom-corner)) + (make-point (real-part left-corner) (imag-part left-corner))) + mode + color))) (define (rectangle-points width height) (list (make-point 0 0) @@ -667,6 +675,13 @@ mode color))) +(define/chk (right-triangle side-length1 side-length2 mode color) + (make-a-polygon (list (make-point 0 (- side-length2)) + (make-point 0 0) + (make-point side-length1 0)) + mode + color)) + (define/chk (triangle side-length mode color) (make-polygon/star side-length 3 mode color values)) @@ -804,10 +819,13 @@ circle ellipse rectangle + square + rhombus regular-polygon triangle isosceles-triangle + right-triangle star star-polygon diff --git a/collects/mrlib/image-core.ss b/collects/mrlib/image-core.ss index 9110052b5e..737323c900 100644 --- a/collects/mrlib/image-core.ss +++ b/collects/mrlib/image-core.ss @@ -163,25 +163,34 @@ has been moved out). (null? p2-points)) (and (not (or (null? p1-points) (null? p2-points))) - (or (eq-recur (rotate-to-zero (closest-to-zero p1-points) p1-points) - (rotate-to-zero (closest-to-zero p2-points) p2-points)) - (let ([p1-rev (reverse p1-points)]) - (eq-recur (rotate-to-zero (closest-to-zero p1-rev) p1-rev) - (rotate-to-zero (closest-to-zero p2-points) p2-points))))))))) + (or (compare-all-rotations p1-points p2-points eq-recur) + (compare-all-rotations p1-points (reverse p2-points) eq-recur))))))) -(define (rotate-to-zero zero-p points) - (let loop ([points points] - [acc null]) - (cond - [(equal? (car points) zero-p) - (append points (reverse acc))] - [else - (loop (cdr points) - (cons (car points) acc))]))) - -(define (closest-to-zero points) - (car (sort points < #:key (λ (p) (+ (point-x p) (point-y p)))))) +;; returns #t when there is some rotation of l1 that is equal to l2 +(define (compare-all-rotations l1 l2 compare) + (cond + [(and (null? l1) (null? l2)) #t] + [else + (let ([v1 (list->vector l1)] + [v2 (list->vector l2)]) + (and (= (vector-length v1) + (vector-length v2)) + (let o-loop ([init 0]) + (cond + [(= init (vector-length v1)) #f] + [else + (or (let i-loop ([i 0]) + (cond + [(= i (vector-length v2)) + #t] + [else + (let ([j (modulo (+ init i) (vector-length v1))]) + (and (compare (vector-ref v1 j) + (vector-ref v2 i)) + (i-loop (+ i 1))))])) + (o-loop (+ init 1)))]))))])) + ; ; @@ -569,7 +578,7 @@ has been moved out). image-baseline text->font - + compare-all-rotations render-image) ;; method names diff --git a/collects/teachpack/2htdp/scribblings/image-toc.ss b/collects/teachpack/2htdp/scribblings/image-toc.ss index 14177c1d16..a8f01bed27 100644 --- a/collects/teachpack/2htdp/scribblings/image-toc.ss +++ b/collects/teachpack/2htdp/scribblings/image-toc.ss @@ -28,18 +28,18 @@ (ellipse 20 30 "solid" "slateblue") (ellipse 20 10 "solid" "navy")) 'image - "41.png") - (list '(frame (ellipse 20 20 "outline" "black")) 'image "40.png") - (list '(ellipse 60 60 "solid" "blue") 'image "39.png") - (list '(scale/xy 3 2 (ellipse 20 30 "solid" "blue")) 'image "38.png") - (list '(ellipse 40 60 "solid" "blue") 'image "37.png") - (list '(scale 2 (ellipse 20 30 "solid" "blue")) 'image "36.png") - (list '(rotate 5 (rectangle 50 50 "outline" "black")) 'image "35.png") - (list '(rotate 45 (ellipse 60 20 "solid" "olivedrab")) 'image "34.png") + "46.png") + (list '(frame (ellipse 20 20 "outline" "black")) 'image "45.png") + (list '(ellipse 60 60 "solid" "blue") 'image "44.png") + (list '(scale/xy 3 2 (ellipse 20 30 "solid" "blue")) 'image "43.png") + (list '(ellipse 40 60 "solid" "blue") 'image "42.png") + (list '(scale 2 (ellipse 20 30 "solid" "blue")) 'image "41.png") + (list '(rotate 5 (rectangle 50 50 "outline" "black")) 'image "40.png") + (list '(rotate 45 (ellipse 60 20 "solid" "olivedrab")) 'image "39.png") (list '(beside/places "baseline" (text "ijy" 18 "black") (text "ijy" 24 "black")) 'image - "33.png") + "38.png") (list '(beside/places "center" @@ -48,7 +48,7 @@ (ellipse 20 30 "solid" "purple") (ellipse 20 10 "solid" "indigo")) 'image - "32.png") + "37.png") (list '(beside/places "bottom" @@ -57,7 +57,7 @@ (ellipse 20 30 "solid" "slateblue") (ellipse 20 10 "solid" "navy")) 'image - "31.png") + "36.png") (list '(beside (ellipse 20 70 "solid" "gray") @@ -65,7 +65,7 @@ (ellipse 20 30 "solid" "dimgray") (ellipse 20 10 "solid" "black")) 'image - "30.png") + "35.png") (list '(overlay/xy (rectangle 10 10 "solid" "red") @@ -73,7 +73,7 @@ -10 (rectangle 10 10 "solid" "black")) 'image - "29.png") + "34.png") (list '(overlay/xy (rectangle 10 10 "solid" "red") @@ -81,7 +81,7 @@ 10 (rectangle 10 10 "solid" "black")) 'image - "28.png") + "33.png") (list '(overlay/xy (rectangle 10 10 "outline" "red") @@ -89,7 +89,7 @@ 0 (rectangle 10 10 "outline" "black")) 'image - "27.png") + "32.png") (list '(overlay/xy (ellipse 40 40 "outline" "black") @@ -97,7 +97,7 @@ 25 (ellipse 10 10 "solid" "forestgreen")) 'image - "26.png") + "31.png") (list '(overlay/places "right" @@ -107,7 +107,7 @@ (rectangle 40 40 "solid" "red") (rectangle 50 50 "solid" "black")) 'image - "25.png") + "30.png") (list '(overlay/places "middle" @@ -115,7 +115,7 @@ (rectangle 30 60 "solid" "orange") (ellipse 60 30 "solid" "purple")) 'image - "24.png") + "29.png") (list '(overlay (ellipse 10 10 "solid" "red") @@ -125,40 +125,45 @@ (ellipse 50 50 "solid" "red") (ellipse 60 60 "solid" "black")) 'image - "23.png") + "28.png") (list '(overlay (ellipse 60 30 "solid" "purple") (rectangle 30 60 "solid" "orange")) 'image - "22.png") + "27.png") (list '(text/font "not really a link" 18 "blue" #f 'roman 'normal 'normal #t) 'image - "21.png") + "26.png") (list '(text/font "Goodbye" 18 "indigo" #f 'modern 'italic 'normal #f) 'image - "20.png") + "25.png") (list '(text/font "Hello" 24 "olive" "Gill Sans" 'swiss 'normal 'bold #f) 'image - "19.png") - (list '(text "Goodbye" 36 "indigo") 'image "18.png") - (list '(text "Hello" 24 "olive") 'image "17.png") - (list '(star-polygon 20 10 3 "solid" "cornflowerblue") 'image "16.png") - (list '(star-polygon 40 7 3 "outline" "darkred") 'image "15.png") - (list '(star-polygon 40 5 2 "solid" "seagreen") 'image "14.png") - (list '(star 40 "solid" "gray") 'image "13.png") - (list '(isosceles-triangle 60 330 "solid" "lightseagreen") 'image "12.png") - (list '(isosceles-triangle 60 30 "solid" "aquamarine") 'image "11.png") - (list '(isosceles-triangle 200 170 "solid" "seagreen") 'image "10.png") - (list '(triangle 40 "solid" "tan") 'image "9.png") - (list '(regular-polygon 20 6 "solid" "red") 'image "8.png") - (list '(regular-polygon 20 4 "outline" "blue") 'image "7.png") - (list '(regular-polygon 30 3 "outline" "red") 'image "6.png") - (list '(rectangle 20 40 "solid" 'blue) 'image "5.png") - (list '(rectangle 40 20 "outline" 'black) 'image "4.png") + "24.png") + (list '(text "Goodbye" 36 "indigo") 'image "23.png") + (list '(text "Hello" 24 "olive") 'image "22.png") + (list '(star-polygon 20 10 3 "solid" "cornflowerblue") 'image "21.png") + (list '(star-polygon 40 7 3 "outline" "darkred") 'image "20.png") + (list '(star-polygon 40 5 2 "solid" "seagreen") 'image "19.png") + (list '(star 40 "solid" "gray") 'image "18.png") + (list '(regular-polygon 20 6 "solid" "red") 'image "17.png") + (list '(regular-polygon 20 4 "outline" "blue") 'image "16.png") + (list '(regular-polygon 30 3 "outline" "red") 'image "15.png") + (list '(rhombus 80 150 "solid" "mediumpurple") 'image "14.png") + (list '(rhombus 40 45 "solid" "magenta") 'image "13.png") + (list '(rectangle 20 40 "solid" "blue") 'image "12.png") + (list '(rectangle 40 20 "outline" "black") 'image "11.png") + (list '(square 50 "outline" "darkmagenta") 'image "10.png") + (list '(square 40 "solid" "slateblue") 'image "9.png") + (list '(isosceles-triangle 60 330 "solid" "lightseagreen") 'image "8.png") + (list '(isosceles-triangle 60 30 "solid" "aquamarine") 'image "7.png") + (list '(isosceles-triangle 200 170 "solid" "seagreen") 'image "6.png") + (list '(right-triangle 36 48 "solid" "black") 'image "5.png") + (list '(triangle 40 "solid" "tan") 'image "4.png") (list '(ellipse 20 40 "solid" "blue") 'image "3.png") (list '(ellipse 40 20 "outline" "black") 'image "2.png") (list '(circle 20 "solid" "blue") 'image "1.png") diff --git a/collects/teachpack/2htdp/scribblings/image.scrbl b/collects/teachpack/2htdp/scribblings/image.scrbl index 4dc314ecc3..c19c5d50aa 100644 --- a/collects/teachpack/2htdp/scribblings/image.scrbl +++ b/collects/teachpack/2htdp/scribblings/image.scrbl @@ -23,7 +23,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other. @section{Basic Images} -@defproc[(circle [radius (and/c real? positive?)] +@defproc[(circle [radius (and/c real? (not/c negative?))] [mode mode?] [color (or/c symbol? string?)]) image?]{ @@ -35,7 +35,10 @@ Existing images can be rotated, scaled, and overlaid on top of each other. } -@defproc[(ellipse [width (and/c real? positive?)] [height (and/c real? positive?)] [mode mode?] [color (or/c symbol? string?)]) image?]{ +@defproc[(ellipse [width (and/c real? (not/c negative?))] + [height (and/c real? (not/c negative?))] + [mode mode?] + [color (or/c symbol? string?)]) image?]{ Constructs an ellipsis with the given width, height, mode, and color. @image-examples[(ellipse 40 20 "outline" "black") @@ -43,25 +46,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other. } -@defproc[(rectangle [width real?] [height real?] [mode mode?] [color (or/c symbol? string?)]) image?]{ - Constructs a rectangle with the given width, height, mode, and color. - @image-examples[(rectangle 40 20 "outline" 'black) - (rectangle 20 40 "solid" 'blue)] -} - -@defproc[(regular-polygon [side-length (and/c positive? real?)] - [side-count side-count?] - [mode mode?] - [color (or/c symbol? string?)]) - image?]{ - Constructs a regular polygon with @scheme[side-count] sides. - - @image-examples[(regular-polygon 30 3 "outline" "red") - (regular-polygon 20 4 "outline" "blue") - (regular-polygon 20 6 "solid" "red")] -} - -@defproc[(triangle [side-length (and/c positive? real?)] +@defproc[(triangle [side-length (and/c real? (not/c negative?))] [mode mode?] [color (or/c symbol? string?)]) image?]{ @@ -73,7 +58,19 @@ Existing images can be rotated, scaled, and overlaid on top of each other. @image-examples[(triangle 40 "solid" "tan")] } -@defproc[(isosceles-triangle [side-length (and/c positive? real?)] +@defproc[(right-triangle [side-length1 (and/c real? (not/c negative?))] + [side-length2 (and/c real? (not/c negative?))] + [mode mode?] + [color (or/c symbol? string?)]) + image?]{ + + Constructs a triangle with a right angle where the two sides adjacent + to the right angle have lengths @scheme[side-length1] and @scheme[side-length2]. + + @image-examples[(right-triangle 36 48 "solid" "black")] +} + +@defproc[(isosceles-triangle [side-length (and/c real? (not/c negative?))] [angle angle?] [mode mode?] [color (or/c symbol? string?)]) @@ -89,8 +86,52 @@ Existing images can be rotated, scaled, and overlaid on top of each other. (isosceles-triangle 60 30 "solid" "aquamarine") (isosceles-triangle 60 330 "solid" "lightseagreen")] } - -@defproc[(star [side-length (and/c real? positive?)] + + +@defproc[(square [side-length (and/c real? (not/c negative?))] + [mode mode?] + [color (or/c symbol? string?)]) + image?]{ + + Constructs a square. + + @image-examples[(square 40 "solid" "slateblue") + (square 50 "outline" "darkmagenta")] + +} + +@defproc[(rectangle [width real?] [height real?] [mode mode?] [color (or/c symbol? string?)]) image?]{ + Constructs a rectangle with the given width, height, mode, and color. + @image-examples[(rectangle 40 20 "outline" "black") + (rectangle 20 40 "solid" "blue")] +} + +@defproc[(rhombus [side-length (and/c real? (not/c negative?))] + [angle angle?] + [mode mode?] + [color (or/c symbol? string?)]) + image?]{ + +Constructs a four sided polygon with all equal sides and thus where opposite angles are equal to each +other. The top and bottom pair of angles is @scheme[angle] and the left and right are @scheme[(- 180 angle)]. + +@image-examples[(rhombus 40 45 "solid" "magenta") + (rhombus 80 150 "solid" "mediumpurple")] +} + +@defproc[(regular-polygon [side-length (and/c real? (not/c negative?))] + [side-count side-count?] + [mode mode?] + [color (or/c symbol? string?)]) + image?]{ + Constructs a regular polygon with @scheme[side-count] sides. + + @image-examples[(regular-polygon 30 3 "outline" "red") + (regular-polygon 20 4 "outline" "blue") + (regular-polygon 20 6 "solid" "red")] +} + +@defproc[(star [side-length (and/c real? (not/c negative?))] [mode mode?] [color (or/c symbol? string?)]) image?]{ @@ -101,7 +142,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other. } -@defproc[(star-polygon [side-length (and/c real? positive?)] +@defproc[(star-polygon [side-length (and/c real? (not/c negative?))] [side-count side-count?] [step-count step-count?] [mode mode?] diff --git a/collects/teachpack/2htdp/scribblings/img/10.png b/collects/teachpack/2htdp/scribblings/img/10.png index e650be6e6981c2da005add5c20c5099883a9bf46..e7aaad3eb29b9693a8d3b5868abb623d76bdb09e 100644 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^#vshW1SGc}US12NN<3X0Ln`LHy}6OM!9d{Xh2I*| zhb3mtTt literal 685 zcmV;e0#f~nP)5ig66h;Mc0TEEU=lx%A+L5I!3R!D@uviLhGWKY(d?$t=iRNm|$^Gs{g>yaw;Afh69DQ5+%i0_Eu0A=` zUfZrV@2Ldz76@z1L}@H`LrqWAJpB{;1Ns4|iu$o}zU$F;#&&PmYi%jJOz=V=tf7(> zxscJWO7f!WQspG@Sd0K;OvSbl6evgb~(P8@wZo$NUV zVZ~Y6xz`uB{u5mAgXu7x?Ado=Wkv2s=kM-&bXjl;11$Ifc#Njb@3x!+&7Lxa#b-Q- z=&gXN$abo)kPDSn9srX3L@WPL%*dmb&?fE1g05D<{MX}bVXfa1Om6_+ T|43OL00000NkvXXu0mjf5feur diff --git a/collects/teachpack/2htdp/scribblings/img/11.png b/collects/teachpack/2htdp/scribblings/img/11.png index a2bf2561273ddb8234024797fd69ae7e6bfa8b91..02ac08dccbd4e84e2a13dc32fe298faf40fbc280 100644 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^nm{bd!2~2jb_J9JDGN^*$B>FSZ?A3SWl#_}d|<}k zaz5FlCU=i-OxLX(jxpbwwB)UDHSg;3TM+R7X5~+x&xcEH6&>bR^_-OG3N(Yk)78&q Iol`;+0EDP1e*gdg literal 659 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 IM6N<$g1Wp+0RR91 diff --git a/collects/teachpack/2htdp/scribblings/img/14.png b/collects/teachpack/2htdp/scribblings/img/14.png index af23c00a64158fec295aa071b534da6db6d7760e..1031d90f804193322a0e7050731245375e25842d 100644 GIT binary patch literal 1294 zcmV+p1@ZccP)a$C3tO$%WHw|`!%mpk>M zKHg4R4bCWU)}6=ONxYlv7BWXQWD->Q2D3k<{sWy#QQcA4YD{J1pr$jY6fzJVqT>=k0TM;)hAE=>MSH7ADXn@;WS8L>;up zjB-YuR)ddS>4bcV-9koupUoiuBStUE$W{x~NCksJU(p`r_c%O@~dhqY=^ zM|VN1!G)F&Lw}WzUKyG;SsX~(=(}MZZiX7Im zMD@o}`;0Tn8RdQENfNn}1?9Fx25b_T+gqZ;TBN99pmZ)=Mx7?*-AgwNHbTD0)L~iB zv=;BMJ}PPyDShUNnt*-oPR6M*u95%%D3o=PAeB!SbK!WKOEnpNX&;CG06KbVMeE2G?bh*>({@J4h)EmtA7kV)R{u;z&B+y|_|S>0ij z-`}if1|mOjTN42o6O`MZ@35W`)#IWE!WngLI-e^8k)NG>1`~wIYYuBF>co$1k%82C zzvV^AmCiT35dc8GtYZt|8Z4c{%#6bVt`q$A$MEkz?|g4#T+>QMSAY3!_t)R|45%tk zJJlaYc7r#m!zdrDq+7Y+xz22FyFYG@}P%l*E@ZQp-td8WNnCO;WNEuCaV zCiBHK-u2&@6{Tx?EQS;8vo!UzB}dgj5ob*TF+qpNS@rpk>wFea`|V!2tj-zboeLSK zPb3Ebuz#qFFj=wwlbOW7=K_sxFp1jdLSU!IyiJ$p6{dcNAWUBLJF!_>Kh=w#Mso-4 zO^&1}!tYceCJ2)^`JLFTWb$DY3U!-x=kEG*S?G+RmQSDvlZ8skCm&wo@pdBAZ8do8 zQxcM+YM^*D<9F6_M(HJPd%h6Z{?7Tl^GuQh0LYhg(}E^JmFi;rPW;7467BlT6P?=j z*^iTl^0Tv_5j)bf7VmdrBa5g{M4{5Xbeohj>U1vLU?SJ@6h(pCnrThDn@jaOv5`*H zSpq+@&s|aF=rb?Dvosk)EuTV>gcQn~vos50>^`;b`JnBs;E9?B4!&lw1u;RzB>YZn zQX}dt{4o&fGP>X#Y3g?f#1<+i?RR36N>OKd7)}`FtnRP|AKk^wk;IIM2$S-hbBays zMV)2X^+lDV)!?o(Cr1)~2a~r>bESy267>g>(r<|ob8eq;|KAaF-B3%X5Z55KP+oe! z6Pq;^b%rodx|eQ`c?Z}ieqcg6MXbN5pO8=R-hMv*0k?PX)4V07*qoM6N<$ Ef<>TiLI3~& literal 1553 zcmV+s2JZQZP)F7{{O677C2YL_|e#jF-t=#4vS3!y-&#ozn~)6CEg;sNsW-#NgZFHrR9sF-x49 z7`80BIdSUZKDen+c`+LUR6v{pEmWa&v=j<$p-@VD_n{eS`f_{Dz4zeu|8(!U&pH3+ z*K>OAx#wPrrfDE4z1a{N6hhPj00g8BN~$i9wgA!?U4y;1+UwK?9Z?q`jZrCY0D!8_ zMxri28bc?18+2{jr&Fi(-K~~MD}f6%h=rY4EW| z=~8%C*<>fS@F9XxA+L8|stuWq&FXd%c0dTDvZKLcIk|DgKZb5}sI^bw@zVbZLnd$Z zw)pQI)+z>icy|O6818eFv#J#Lcy|QeG4y6*b8iPj0HJZkGlopjV5jX20d3l+TGJrE zrocaj-18jetSSN>!Y77deB^iam6Rb9Yy1$-R3i_skhB!G4tpP{9>StC;+h9 zChsbnc=QDxF-(@x#-7KB!Mu+vk=|_hxwXoMFc_HCJ*2VPCJ}@Gc-nHV?ixo&p+NY4 z!rP8bFp8$>W_A1FU(aZa1036(PR*SWcH-T=iSy$fr<7yiV6u!B-Y!EN+|ONUue@0( z-6IjdFjYc1uYaySl%1^ke%w0oJaR))fS-Rs%JvVIrn!_;F3ULOp!(pAQwklC1sq4k z&0bi#AwPQ7eD_PP7yvL~v!1N^;iu+`X~_*$S&3^4QnvXE{XAavfZbrBgup4EBNHP-~y!@Qu@ILq8wsA!&X{_=yes66VDr#v@?> zz{ted7Zu;!YOmvv8>-gDuli)|?qL5w^eU(r4qbm#U0Qv?JTZ=+87WHH}Uaat>|#AxjK%P_|0TS<;T3QG)cd*-ZFGyNELny&8Tc`H_H z(!0OeK^Gg0`>H2;vyru>H*pzPY%pXBB9H7`dKepn2KtU1^&614q7##&6A^-h>BL*{Elr7uajysbDsJj%H+K0NC3w&L_9Da>_S)bb%# zPycurt$hlHmn;%-Q0d0}B57WrpV<9spr5!%npe6pUm_0j)`Fe3v+EE%42HX2LPXq^ z+!E=cmCP+j7p=UKTapmr_35;xi#&$Msa8MU`75i@3=-&(XQDMLVc zaR2k!qcN)mD=Walc%oJQ?e^8+97$-|=A-+PvxJ^<@+KiA*q5ADw)yBBNvO*u%j5)$ zk7O{s-RG#3*yUGqOIJiL#&vaQMdaeExuq$w%U#M@{5^0mocdeiKtr&?|rvl zZ#I4=-IEsg26m1(k|`RCZkGj%18?p=jZuw8kV2>0QC_Gq4xj{cm&Q1-qr9-a{~3A} zq~6e&2E&6x1(feCVZLOi>HZP@T*)lNc=r2L|0(?g!1W*^Tve)R00000NkvXXu0mjf DFo^9r diff --git a/collects/teachpack/2htdp/scribblings/img/15.png b/collects/teachpack/2htdp/scribblings/img/15.png index b7ee2771870968f97be4f7d0caa563032ec278b1..92b60ba84aea72afdaf031cdaea6f76a549fa5a6 100644 GIT binary patch literal 456 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 O0000u+>}Y@L zpK>yn!y?rwPkt9?=Db!^*varJHc|Vn>Q)|Gt@wR^_S+@cp3DtSy`OK+;1J8NsboHT QE6^MUPgg&ebxsLQ08R@eg#Z8m literal 1339 zcmV-B1;qM^P)7fK6rTOF-K_1{ICe}asS}sBm!^RIfsZv!@aYE{e zLs8TqAyri5lD5hLa3m@k35qF7FAY&*64PME#z|~%@X!AAu+(kL&dk~~jyHU##Jlt6 z`*z;Uo0<0*P1C^k2TN{ZF{RY;DKrf%rWEqtbx@G;eI$QzBDX5lAZ1n3E>7geA`*G; zI(WkN$u)I3qX3|M{p0%SK5=hIz&3gKxO`*Ps``8uTRfz;x|28I)8mV{?f}!X*r#R51(le$%sO}WwES{Me?J!q+%Hq%V6}D zG#1Gh%f@Q}%t%cjn&Qy~6ob2uim{{&09aW^Ev(Un(kJ^IBs2htj7(nDSt5WIpd*%) zGkJA~lgKaXZ~S1POwuu3Q}xTB;?uND893EqN|||#v8!reK7sKl^O#S_6Zf984Cb}& zknK%BXZXlKhQNcLet%9*&O9_t`{h2q$Ng{FVUG-)>UA#{^cst9B7$CSrx!W}j34X| z+Zx8FPM|3n%jmJ53^XNU8M}R)ztuv1+D#j8K5{ zxh&yVJ{K1XV3?qycuyDpD7OVLLjxtlBGbbR4U~*_NGffsB$2e)v`T?XO}Zxz&u1 z-nF0nShPX>t6E0sXaeR8CtTf+|U=TQF=wM6V zd(}Jk7cw@A+SruzFh=b_*HG;3v<>%(E%yJGA4b!(xu^2z&3qWoHZZd{p?{@5mSV_&E3^viRj^3S$ksVaE# zO!>~japUs==Ns6#q2pDE;uUQBJyiv%torTGxs-|PN=B4k27?4ouEf(QKE^UA=JjX+O$j2yN*<*H zP02vUaz?S>4mYu?EN7ss40enq8GQP|YiOgY1}38gl~QFK%P@nz4s0g21drwhGC~0^ z6u`&;0L=a^&po9RAHzZZvjg}Z5vc#BnPPsB+*JKCdbR>nFibCTBBg#AUMJg$ zO9BO2xd1K|+8N-yWOXlqun?&yY+HaA@qGBU{nTL*0C4rTboUYTNKC~!i9Q1?vuGEX z;eO}H5z#IHy8uRxh{OF(yI|~rRC1+6qtWJOJN*1oYSVypwDD&KoK^Ll2j8)U+xg2k z@>NBB9e&=-;SLK@6IF@1{%*&)A-7>oYP*L$H{|Z`-c-m&E4@f8<6oB$9qidb*NHPg-a2|SFBLT^wZs5@ x!DAAODW#*0t2KmZ8dypzurjY&K|zKU@DI&v92m33q_hA4002ovPDHLkV1immf$abQ diff --git a/collects/teachpack/2htdp/scribblings/img/17.png b/collects/teachpack/2htdp/scribblings/img/17.png index cd170b1c519191e8a6be40e48ce125ee8e545c33..ee6308d544b4dcde85b25eedc661d90eff171ddd 100644 GIT binary patch literal 496 zcmV715|so(P44F1}J>U=!i*53|{q{AL4}iw#eN zT<%N0P+(?D84f?@2LlKKV_p6jNG}h=HIUD%+giMl8gMwUUTgBI}Ya0000X0ssI2>lAw0000B{NklX`8Yo3dX_lDqb5{G>W3q=_Rk%4gd(!z-9{|pD=8EX(=iYR0@Tvyn(eu5Ezb6bGhYG>Gsvb z!bJywXw;9QIuzCUd?Rb+`un?3RA;lD-%vXMOilfXqB^trWZvP%Kwk=NftFg#O*c>z z6TNP?#pfFl3Y9fAZT0o<35CiHRm9^VtMx~ZXBfjAB9T%q*Xneim6z9*43s2;{rz1| z=RnpOAOH2{&C^GY{9ar8PJtyJ&)GFW~_P)Pvbyf~XpWAH_iBw0A{>5Uw0ssod zE`?$jMWt-E3pU&NLO}1{{WccE)#~=chp%Q9j6|}nz5TmHB5Jc;xPJY3clT%}xneP~ zSUe6#koTd{a+jUe`U3#y^`B=bv)Z}yBLH~(c#tIVbwTgnzX$+2-N_shjm8K7b8}+^ z;m07xdur%%l*vlNrbO(w}eV6wWpz3&CUjV?JJKu!EuB;gjyM~5-0)V!*ud;;2pGhjC( z?%kgl3?@3Am33$oMQw%^0OIkG*ZW|8-pS`zR9CkM1XV?pEG#_p`9>m<=Lpgumuom2 rQBI%)p#P6vn)~P$XsNXYT5A0Zi;axwj)&K&00000NkvXXu0mjfOr{CL diff --git a/collects/teachpack/2htdp/scribblings/img/18.png b/collects/teachpack/2htdp/scribblings/img/18.png index b2593ebe1a14c667d30fec2d72c1fe05b6d530b1..dbbf37c78f345f6baa2bcfab7ab50c954a01f5e0 100644 GIT binary patch literal 1246 zcmV<41R?v0P)YPj6owBV?yWX1jZ0IltyAO(;tp;opu8VQjE@Tr%k=GYe**^2 zT+U%;&W(hoX@FCTqR=#rH3R^VxC69WE!-ghH^yqU>i7HW^%`pwz>P5&3;= zK@f0+156l~mTi1_ldM+WbqBv|KJ7j|ez0j;7ipVcI4-jG-us zD2fIRFy)oQ7zP=oYd)WEHXCPyg5wy*8Kn!yfH;Yvs;Y5D>H6&$!{HER|0f876L z7%0tlyPe}36UQ)ARh>?!h>ac3E0>}uydxYg+lrvp^t;AsvjR8Kj6eTqF5|eEEZiZ*ZvG~m`=T3@9XPp zyWRdDeM1sOQP0oM$z<~AJaP0^tX8XLv#A?1zfHklkYO0V-+y}P7y|%yyIs58?smIB z(l=D4)9G9;N0R5K)-xEo#^dq(`@5njIQxbqnxaM5e5F$9 z_VyOBJrV{0Y`5Fb&(D6pZ=-Lhy1&0K6bckYq2Gdvq3h3|Kdn{^-@-ys)XU3DB9SnA zqd5!!kR++uY@WJl_H}b}!!V4`=d*CHX$%0+G)-SvocjDp5QM%g5CmcI36{Gu8jarG z-mKkwq^GAR#2M+5tk)Zt7E}weZ(dpN3W|GxsPTAgGe0e2IQtz;RaKiVwM7g;5S-m^ z+5Ax~VmO#lx@=Z#7BL+61kQfhL6;Q_K@enFwjA=3?EExVFff(ub{>ltBNB-impg}A zE|-=!(XQ)F{+1|;D3&-$lDS+iolXNlx7%&E+b9*wXf%3wcre=~urL}ZL*e)PS(eoq z03e-Cvn+eo3OJJG*TZ>?L?Xd)Tre0sJQ)lIIgY!!0~bZn+HzzLV>X)^n2Ro#i(!~z zv3Pd7MUrH(SY#OH&?Y;Q<;{UP41=Kvg+d(1#p7|~C&c4%j^p;G<*9xGs;+Q2+-NkS(dgAcS7id@Frz4n%IEWyO2y!PMUl(p zs#GfZeE!e}u~2@XVk{Pm{Sq4p1Xz|$rBbFM87P%Xu`C-11oXqJAJ#4 z?z0n%qpg5}kPM#9X7d98c7j^>seYCI1M~V=2+45cZU6uP07*qo IM6N<$g1Wp+0RR91 literal 3766 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 diff --git a/collects/teachpack/2htdp/scribblings/img/19.png b/collects/teachpack/2htdp/scribblings/img/19.png index d4b7ede7b840c996605040c1ead9c63149c814fe..af23c00a64158fec295aa071b534da6db6d7760e 100644 GIT binary patch literal 1553 zcmV+s2JZQZP)F7{{O677C2YL_|e#jF-t=#4vS3!y-&#ozn~)6CEg;sNsW-#NgZFHrR9sF-x49 z7`80BIdSUZKDen+c`+LUR6v{pEmWa&v=j<$p-@VD_n{eS`f_{Dz4zeu|8(!U&pH3+ z*K>OAx#wPrrfDE4z1a{N6hhPj00g8BN~$i9wgA!?U4y;1+UwK?9Z?q`jZrCY0D!8_ zMxri28bc?18+2{jr&Fi(-K~~MD}f6%h=rY4EW| z=~8%C*<>fS@F9XxA+L8|stuWq&FXd%c0dTDvZKLcIk|DgKZb5}sI^bw@zVbZLnd$Z zw)pQI)+z>icy|O6818eFv#J#Lcy|QeG4y6*b8iPj0HJZkGlopjV5jX20d3l+TGJrE zrocaj-18jetSSN>!Y77deB^iam6Rb9Yy1$-R3i_skhB!G4tpP{9>StC;+h9 zChsbnc=QDxF-(@x#-7KB!Mu+vk=|_hxwXoMFc_HCJ*2VPCJ}@Gc-nHV?ixo&p+NY4 z!rP8bFp8$>W_A1FU(aZa1036(PR*SWcH-T=iSy$fr<7yiV6u!B-Y!EN+|ONUue@0( z-6IjdFjYc1uYaySl%1^ke%w0oJaR))fS-Rs%JvVIrn!_;F3ULOp!(pAQwklC1sq4k z&0bi#AwPQ7eD_PP7yvL~v!1N^;iu+`X~_*$S&3^4QnvXE{XAavfZbrBgup4EBNHP-~y!@Qu@ILq8wsA!&X{_=yes66VDr#v@?> zz{ted7Zu;!YOmvv8>-gDuli)|?qL5w^eU(r4qbm#U0Qv?JTZ=+87WHH}Uaat>|#AxjK%P_|0TS<;T3QG)cd*-ZFGyNELny&8Tc`H_H z(!0OeK^Gg0`>H2;vyru>H*pzPY%pXBB9H7`dKepn2KtU1^&614q7##&6A^-h>BL*{Elr7uajysbDsJj%H+K0NC3w&L_9Da>_S)bb%# zPycurt$hlHmn;%-Q0d0}B57WrpV<9spr5!%npe6pUm_0j)`Fe3v+EE%42HX2LPXq^ z+!E=cmCP+j7p=UKTapmr_35;xi#&$Msa8MU`75i@3=-&(XQDMLVc zaR2k!qcN)mD=Walc%oJQ?e^8+97$-|=A-+PvxJ^<@+KiA*q5ADw)yBBNvO*u%j5)$ zk7O{s-RG#3*yUGqOIJiL#&vaQMdaeExuq$w%U#M@{5^0mocdeiKtr&?|rvl zZ#I4=-IEsg26m1(k|`RCZkGj%18?p=jZuw8kV2>0QC_Gq4xj{cm&Q1-qr9-a{~3A} zq~6e&2E&6x1(feCVZLOi>HZP@T*)lNc=r2L|0(?g!1W*^Tve)R00000NkvXXu0mjf DFo^9r literal 1058 zcmV+-1l{|IP)W@pMu*C{cZH8QFTAyM{VoFtA)0_qDIlZg*|^GV%< zG0_+j(?OA?SY-3L503nR;CLD0oeqh+Q0wBt)Uwm{#0rM zyJoXPt==oESTf1R;|#Jjno63smm+21frfzrcRrs&wpOb@cP_p)bYkMuJ9n;Px4V1J zWNMUE%y>iVM;DGNJcmUcCiKsvnvfT(E70?&sl)n^-{$+ZfRhkB^nK2CYwzLgX6*AcqDTB)TyrkfN}+dLK9c6ypu?u{&attNu>h4y)80PV*T?nr_-MKT$Bd4Cl+AL=XjodB#J0`$mLOyVAtQ?U zg9lp?DT+cM@QbXRq0q0`uB~mh+1{q8N}4`$;zS?jGZ`)%z5yg>i6qrlYr9mhQ_1A& zLu4+OM2Qf*-e$?3&|H;?OeS6&Utj+!wk?(x2#G@B!J)UdHeXZovV;b;y5jWdAGh*D zL$4R#(+Cj4a`tOFEj`(iAP5yfkfJF3Q-UliM?eViD-TIh;PKB^wR*4F+{m)C$UT1i zlj5Hn0~IS16s0qn?5nGPB9~!Cj~)8}*`d$`)&>ALaKHr=*$*`}FJb%o^$U^6ZHlVI z9{_;gKOBoOkDN0Y91jG320% z*VVbRSuPf1mY09Oe?QaFF=8}6SANc;N4w|ef7sj%0|4^*^rcH}BuNRvzxOnR(B(Rh zYy~tJ40WBIlNT>G$KxTygu}jY*jF3_p}ae;s_Kx(Gv)O*bKEjw{wsiJYx}OT@m=I9 z^Sq?j*LHSJIi1~m_82fp5UPFqo@r?4ID7Uti^VNBr@>I~@k}`!U0SUklMoUX%gHlm ze!>C(08r`wHAJ3|@cf!qYtZSQE}uE^ c*a;f`29#8p@zpSjy8r+H07*qoM6N<$f;}e&MF0Q* diff --git a/collects/teachpack/2htdp/scribblings/img/20.png b/collects/teachpack/2htdp/scribblings/img/20.png index 43659d6e16539e7a25b8916e569f174eeb94179b..b7ee2771870968f97be4f7d0caa563032ec278b1 100644 GIT binary patch literal 4216 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 diff --git a/collects/teachpack/2htdp/scribblings/img/21.png b/collects/teachpack/2htdp/scribblings/img/21.png index ffe47dc980d9cdbf9445eba5db68a43aa2e4e063..ee1f8e9d9f91c9417d71f5117dc4bc2f25da49fd 100644 GIT binary patch literal 1339 zcmV-B1;qM^P)7fK6rTOF-K_1{ICe}asS}sBm!^RIfsZv!@aYE{e zLs8TqAyri5lD5hLa3m@k35qF7FAY&*64PME#z|~%@X!AAu+(kL&dk~~jyHU##Jlt6 z`*z;Uo0<0*P1C^k2TN{ZF{RY;DKrf%rWEqtbx@G;eI$QzBDX5lAZ1n3E>7geA`*G; zI(WkN$u)I3qX3|M{p0%SK5=hIz&3gKxO`*Ps``8uTRfz;x|28I)8mV{?f}!X*r#R51(le$%sO}WwES{Me?J!q+%Hq%V6}D zG#1Gh%f@Q}%t%cjn&Qy~6ob2uim{{&09aW^Ev(Un(kJ^IBs2htj7(nDSt5WIpd*%) zGkJA~lgKaXZ~S1POwuu3Q}xTB;?uND893EqN|||#v8!reK7sKl^O#S_6Zf984Cb}& zknK%BXZXlKhQNcLet%9*&O9_t`{h2q$Ng{FVUG-)>UA#{^cst9B7$CSrx!W}j34X| z+Zx8FPM|3n%jmJ53^XNU8M}R)ztuv1+D#j8K5{ zxh&yVJ{K1XV3?qycuyDpD7OVLLjxtlBGbbR4U~*_NGffsB$2e)v`T?XO}Zxz&u1 z-nF0nShPX>t6E0sXaeR8CtTf+|U=TQF=wM6V zd(}Jk7cw@A+SruzFh=b_*HG;3v<>%(E%yJGA4b!(xu^2z&3qWoHZZd{p?{@5mSV_&E3^viRj^3S$ksVaE# zO!>~japUs==Ns6#q2pDE;uUQBJyiv%torTGxs-|PN=B4k27?4ouEf(QKE^UA=JjX+O$j2yN*<*H zP02vUaz?S>4mYu?EN7ss40enq8GQP|YiOgY1}38gl~QFK%P@nz4s0g21drwhGC~0^ z6u`&;0L=a^&po9RAHzZZvjg}Z5vc#BnPPsB+*JKCdbR>nFibCTBBg#AUMJg$ zO9BO2xd1K|+8N-yWOXlqun?&yY+HaA@qGBU{nTL*0C4rTboUYTNKC~!i9Q1?vuGEX z;eO}H5z#IHy8uRxh{OF(yI|~rRC1+6qtWJOJN*1oYSVypwDD&KoK^Ll2j8)U+xg2k z@>NBB9e&=-;SLK@6IF@1{%*&)A-7>oYP*L$H{|Z`-c-m&E4@f8<6oB$9qidb*NHPg-a2|SFBLT^wZs5@ x!DAAODW#*0t2KmZ8dypzurjY&K|zKU@DI&v92m33q_hA4002ovPDHLkV1immf$abQ literal 1388 zcmV-y1(W)TP)LQ4a)$}4zktQUQ0z)vg2`PWrL+vqG2tnWvwLl`UjB0|) zic$*fp+RO-T4+fzk*FBHLZ!wBqmJpE@BZ*yN2hsd*RGd)KZaqQwb%aEKHu!U);S}P z#Q*sF;Pp>0z$ru#)z#?eu(xM4(a;boE8%vJS*>{g-pLqeB@70xSwlc9FP~)3Xd;pq zE)WoFYFtgZdX)hIR4N^h{*s_=ZND^goS~G#ey?uaQH9+1Cf-3?rtgAXoOCOJ9m(nh`2Zm47ghE zqelo0MQA8)-Ow&QA|p{&2G_ET!(zd?bJ(~M+1dE~8354V z&**6S_%Jt@-@mi8lz^C@FI5DsmPtvH{qZAxeVLXfU1~Jkw8?QDF&Y^hOn-mo=JMV> zo;X30+qd)6Cz5Pyqg>9&NGVvYW@e^jFIvPaS0ww@D+1!PXZH4?L!2{*?d?+7yLUWt z#PKqmG23CB++<>5Ap!C6W4e~*;6bT|c6M^#J~lMi*g*35aRTDFOQGO_10-2pO+c)u zuto3MML}SFJxOXb+`QTG5=kZ}bKyc;buTUD%9XrvL;9>;OF$eGB|o3FwIpe^a@8uE zI?e=bYooWf^dpfxc8niBI9`J@W@mzueDg*U)P*ekOHiYcDJksho5VKf=bbN;!D0b` zswx0bDs4j%5qS8JH8ny|5a6;)%%2aL%vRkE1_TBoG*r6O>j4O3r9C49-QCE~hag~h z7-qAZgSm7mv|1DvA}b3r85$a(QaO&CDzj^h%QA++K}19#BLfQ-ObT-#=r~440l;X) zAAd-m4I6BJOr`Di_M)>BVPOu2ii%KBfcy8MP@u5TBeu*;==HdG5h@j8W1WUggV}TV z`XW6YCr?7HMof&&@9MEhtp

FKnKM1^`&UUb^(W_XP)|sfiU8Hcv|nUcN+YEB5Y1 zMg|lLPpJT`UXA#8oIj77H?e1r=2y<>hE?MNf~^OvjS`Y>(m8DRgyl-aPvgHx3ufc9=-s+iUxFCJTV! zVTd9CT)T#V0K~>lc!I2~I1%WG8u%yJk%4keoK;l}3?v`|qDI4x4#~fJH@&>LZXJt@nU%%4 zbE(tu?OSRz1jOiQUcYX$C%zPhhtpti+-F=c+hJlNy`DRE5D=rHc}&$!vSl251`z1Mx&8JHjg1HjvVTJ`nc(XSA0M{_5=b;R!_N#Pq0wMs4RMHRF#jS1K%DU;{~3^iM>}-(;Q4bLJ&KSJG&aIu_#HcLs+hh1 uhdP8@j?qzk`2xLuHmV8WU$#SMKmG)~8taMHG0Not0000X0ssI2>lAw0000B{NklX`8Yo3dX_lDqb5{G>W3q=_Rk%4gd(!z-9{|pD=8EX(=iYR0@Tvyn(eu5Ezb6bGhYG>Gsvb z!bJywXw;9QIuzCUd?Rb+`un?3RA;lD-%vXMOilfXqB^trWZvP%Kwk=NftFg#O*c>z z6TNP?#pfFl3Y9fAZT0o<35CiHRm9^VtMx~ZXBfjAB9T%q*Xneim6z9*43s2;{rz1| z=RnpOAOH2{&C^GY{9ar8PJtyJ&)GFW~_P)Pvbyf~XpWAH_iBw0A{>5Uw0ssod zE`?$jMWt-E3pU&NLO}1{{WccE)#~=chp%Q9j6|}nz5TmHB5Jc;xPJY3clT%}xneP~ zSUe6#koTd{a+jUe`U3#y^`B=bv)Z}yBLH~(c#tIVbwTgnzX$+2-N_shjm8K7b8}+^ z;m07xdur%%l*vlNrbO(w}eV6wWpz3&CUjV?JJKu!EuB;gjyM~5-0)V!*ud;;2pGhjC( z?%kgl3?@3Am33$oMQw%^0OIkG*ZW|8-pS`zR9CkM1XV?pEG#_p`9>m<=Lpgumuom2 rQBI%)p#P6vn)~P$XsNXYT5A0Zi;axwj)&K&00000NkvXXu0mjfOr{CL literal 1135 zcmV-#1d#iQP)zfzrQg@4Y=fz$nxHg>o+s_w&@;p4@(W zIq5y;21KVvVP+K8DihZx!^Y%1pNi_G=Lcnl{HGrlD>1|kV z!@Lb4X3d`o0KmY^DExe~+~E{Qrroo_N5jFc$V}Vf%tPsvsqpB#h2Fp{s&QhI3)gor z4c(-^gJ4ZX*-+NE7Veq?HwQxg{z?C?qM_x=3N+%EB7W)5a{>SmEo$7!H2Ik3J*=)C zm2(C}Z=5WAy-{eQe`4%#$louC6<&}v!3?rL#k3yOICe8ov_Jp#rj*>da_Gi4Z${^~ zZAf4NS&;@ugy4u!(?UGQv=8iO5zap{PxqwXH}>WGi?a`IY-3T;Kcveik~hzgo_9Fg zPV)Z&_jQXI{)geyw|^RxE3brw3F*SiiPk~QV{hw-?!LEj-HC`}N>82rTeADe$CVSq0&jE zA%wgi={YNcm3398@07Fs3q`9+Kp5?KmuvDZ|7zd+@kUwifg_j*zh8ezv9!WiJ$m9a z*F38-sm(UmEp9UKxnXrQtnLN?0NSzZgS|)hnytUdSyl+EM_ng$ z&kh?*uK#W`^K3gC9AnSD{$$U-w{-lREO~hlEpi{$zIe&#Ii^KTBi z{r+fdp?O0qSL1Eibx_mxibiWGc0Vls{A78|q`&X>l|#W>dxQ*M)yN!eEo$mxx4ppH zy(ONUEGcI(NbRnRcGpEoevYpgE7t(d9aEUV6@0TF>W z2Y7QJcc`NQ+MlV)$@41x$K9ONZh5KQ@>09yrFP3p?Ut9?EibiOUTU|z)NXmH-SSeq z<)wDZOYN2yTIc_n7G&)O>(kXg?LCN6T6)yx^Dk`*N3F=0B2@qY002ovPDHLkV1g-~ BG3x*T diff --git a/collects/teachpack/2htdp/scribblings/img/23.png b/collects/teachpack/2htdp/scribblings/img/23.png index c7a53e79ba366bf6b7f245a6cbb91a57434a17c9..b2593ebe1a14c667d30fec2d72c1fe05b6d530b1 100644 GIT binary patch literal 3766 zcmV;n4oUHeP)4Z`QwI1e0d2J(E0j({J#8g-aYsC-pM`h-h0lu z57TP3FpNJTsHWA5E>&rELtA5KyFf}aH*@6JGTm(50+=?AmaoUYVHkr^&po?Wm-|d77j5UoGbbM!|MPLwIJ|=WApI#_k+LdZ0iDm zzIl1;a3opQB%-t6HsTt`j#^i^R=Rq~c~b zd^+jGm)BP~dof<0$-@8ug6G6S*=JKuwKjI5OM4gV_rIMRKGVnA-U9EV)j-ab@?Q@= zetPEx0MwVZd@}LG*LPQO{2gDT*~0)zuc(D@lG1Ruh0pLlQuN-W#liY+0|1NyQ40e0 zWF#%x9EDn18#_~yvtO6N!_cAEb2pC{=HIA7^2GSyT{l+Rv#m`q*B+QXJt+*y56+b+ zyVbAG%3&Cy$8%b^v`;s0Xy#_`CeOquMmac^ZJUe)skqxjM1!N9FUh@HS#$T&iqs=p1m+A(twj-K(oD7HU+lHEe0F>!{4-i-o5CtZtvny;|8&)`H}De;vp2 zw(rja+ya@SV!ev*)dIlnlSNY!LP)zcRTk3}CvM=cEK&;J4~q$FqG|K)j2kwC51007N`>J{po zustSvQ6Qo3@5c%*AIbp$z_2|TNp?1KOi&2IoOdCADXpMM)yt#JAVWd(-| z*Pq{$`QZF>(&xUhA#&~h+2&TgksYtB^}V2@NdEBH{MlyX!uZ9auKO6Ws%% z+&WrhB@gQ>^Y|*Ix{cqt`>pd^&c+kW8WJLgVH|%)-w1Ydowzc;Nhw$Txc!dLXtrsa zcP~0Gcp(A+CdW2lyqmM9U3EcIMJ^vzB(DBDPb8FmerYk@-z|{oKbBLG+Xw)e7rDkf z_wWK231QQ{32v({XxjP4S+uTDD40(K+i#4kN}(=&#N(B>YPH&qR@uH4sT#F*YGUt9 zr2>FlrmB4=MAz*8t&{x$udMa_*AJ0AcCO#Hl%+Jw-hxXzU$Q0U6u+ts0FG_GF=mdh zjf3SNiKW>*+-)O5T|Q4)g6Aq-9g6*{f6Y!StuAUZZMNWr$c#!!*dDWNTMUJYp+>P# zwj=K6sscU$WTkMqnGL~{+;PgZm7|d7iZWhE+PiUkaCCJl@_w(vJHMpU!nYf)BDXnv zFh2fiQE03uuH;v?Z<~2qSS!+Mwf}nea%7yZEmOA|Qvjf&MTXa%**-(&xl>y+)G7@C zgwOEap0-SX^Z~%Z)n@n2L?*`;0NMqTlb_ulJn`ID50KzLmXn&!LjU?slAAvhT^|4Rrhfk^2_a@?6aY{u)sNE33~!ioxm+n% z0f2=SZDM?ozUuCo;<6kb0MP9$lC#(7yA1$b{T%k*Tjk=(005<2b@$9OTtxu@Nn00w z&GI%RC4uTh&4rm zC+QWaF=_WSOB))IhC$NqX=cWQr&G9RViB2cx%DqtT+0+klDpe%8H@eq&t6%<&;* zv3=|(#s?d_C&I$bQGk)FrmqUKveAt@zp7ndg|C5yx2k30m!hg}i8AkcC7~NaO_89b zp#uOg3?r_hdYHUKXLEH?6aL0f0Dx}S`xdk`bejBM{RLk6jF{zZqMMzQ75<_jn+8GD z4W-{$R})0fkxr&9=lB^d<5|$DoSp?!P$SY;O;{9YX>ASwN`?CIZ{_-`oXh2kZWRD9 zoakfb`0A_hOpNX0KxY_Da%`DaXmer(vRQEOLw z97NlaKKMNjaQ5h<7|n387S@Szn+8m5>X`&CUZ%EcXU{%vYdV*8_OwHBN>lYqbI!t= zHsP(HJExxlz{3kA(~^28(8HefbMn%WX0(^qYF@eS&og>9b0#K(0Kl(oH*_0nM}m`woe6^gz=E#ZkfdVyV2JooI-4Xq zy4sk~Vi?9C`g#fu1*Eo&$=bbylePU8AhP+%5@V+rBvf5 zFs7lD>#B@Y0H9f#`Gm78^Z5W!SJDDnFt*SeqMqAgx`T!+Bi2VdUsoR?BqV>7h*5M# z%Vor)V10Dzg=2=$YPDSwg?U7lnA=| zItEQ}BT(>gi8aDLVmA5SOn`fkZn@TF;-Rr#$aBJ4QO=c$@o)O~=Pm%yP)hDOj=y6I zuLDd@VuV&+2NKvm4ud43q^h~j6tTI!!}M)CTf0nnu9erR|4@BU%&^$yA!!F613>0Q zF7n*N3nfUapG4zu3(&cN;Y{E3{XD}CCZO|q)PmlEUdq0#ev(yk_01DSq$)g@YN|G} zaRLB9-Sg(|o+*M-$-xuxP=yqP$ifiF{iIMSH29iq=s5tG+7lnMYwHgUesc zKbwEu=pR5RzEgW~Z>BNrq{YEB3n~C~wsmFv_>{DdT&lc#rWncbpG-hCivbg-CWcaJ zW&j}XQr`Ga0V(n3e+y7q*#vH#EG)c9R{7OJ`nS1Ad}HHSV=F42mStY#;!)*{)g-As z0QiKny+T}&e14D7!92A!qmAF$E|B|-#(x5lUk+0FwB}klDxCL?ce-h9Fk9Lxm9qZn$SU|(0mnt0o8UHPV{*j#}1On z@pr`KpZ;+->k{$2u<%yRkK6B%4vjuE8tuNs)Yg~tTCD~St-bR6VI2Ti(rNJ@M;oKZ zt_a023;=SkR^+Bv007N`8nbL9X=e%*+i*Az$=Ru;SHH_6_Rzww2Oi@^rTLr2;TlZ; zOIej%y?xf{XAkP|7P_s)h%guL(Jb#UmR1Y(+~#_2OKEmPmqY;o7=~>;`UbDOHSNG7 z0N8qA@ubDQ6$+_HzRvFmddJPEl(+sC9TMZ|6Tubb+ld1)$jF zq0tKieZpBPg}SClknvM7{-MI6kD}M^pM|q9!Z*%Z4Wu8<{c&4{tb_bu42PAC`KIsZ z#jXg=xm@w(f?vSEa{y5Bgugf85+P~T2hD=I;c(oXb;OgA0Tas~H|}}+LJN;PfOHFB zet2yDXR)Wii03F2Y=6$X+h&|5eA9#jV!SYo2jxOx8DQkUD-vxr+a=5XP96!?Zt@kAv= zL->z#JzTIpHi5iC@8ZeWdw;dz=nsY%5XJdd{<=}IUW9fE1)IEhK_XC2hFwO>Ow(v zVN+veyQ{B*_h^>)XcpVszR#3@fJ7}cl(ulQ8p?8bOpa~P1oyxwHxq?Hk{f6s?|S8n zVxd?l^$K+figt4ka_WD90$(s!emOPaAALI;p) z^v|1cnDX2(1_rTE_KwFvr9w@mnVqQp(7|NAZNTWq7hc2ogSdITP^nM@z{L2VSL8Mr z_S}#|t<<1zu>c+Qy)yiL(6o1%Foj4}78PU5#T&MgRZ+07*qoM6N<$f{TBF5C8xG literal 2161 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 literal 893 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 literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^#vshW1SGc}US12N9(uYshE&XXdvhaivw=YCLuIci zM#>ZPZXQ~8o-gvK@I+BPX@e&Bf|utq1%=$svlM*%_pRlNr~1uJ86lyeOP8(LdQ775 zoUHE5XLGzY=k}$Yag&rwt(fxgs<8DXZJ(9RyrQdC&{b<{ApP=_kpXCO%xr0=E zJtgLMt0rFX@8sk=x-7ecmfgN1@LpgEl6=_QEkC>N3tX2-4W6mHSJBSU>+J0%JpD#C zr#@&LUJPSof2xm*e*ga7dEa({Hi2i$`X%NYip|iA{r>8=+R~5@ANl?=#OyX>xvwR( Q1L#=>Pgg&ebxsLQ0CB5(fdBvi diff --git a/collects/teachpack/2htdp/scribblings/img/26.png b/collects/teachpack/2htdp/scribblings/img/26.png index 841284164bf07a52bf92369249af6ab72b1a8b5c..ffe47dc980d9cdbf9445eba5db68a43aa2e4e063 100644 GIT binary patch literal 1388 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 Hu0mjf@oR|` diff --git a/collects/teachpack/2htdp/scribblings/img/27.png b/collects/teachpack/2htdp/scribblings/img/27.png index 60a97a2408b3cb0b4ecce4fbe1db68b09e615c02..e5bec8f1d1f4846edccb0d4fe1dd3e5ed77e3f90 100644 GIT binary patch literal 1135 zcmV-#1d#iQP)zfzrQg@4Y=fz$nxHg>o+s_w&@;p4@(W zIq5y;21KVvVP+K8DihZx!^Y%1pNi_G=Lcnl{HGrlD>1|kV z!@Lb4X3d`o0KmY^DExe~+~E{Qrroo_N5jFc$V}Vf%tPsvsqpB#h2Fp{s&QhI3)gor z4c(-^gJ4ZX*-+NE7Veq?HwQxg{z?C?qM_x=3N+%EB7W)5a{>SmEo$7!H2Ik3J*=)C zm2(C}Z=5WAy-{eQe`4%#$louC6<&}v!3?rL#k3yOICe8ov_Jp#rj*>da_Gi4Z${^~ zZAf4NS&;@ugy4u!(?UGQv=8iO5zap{PxqwXH}>WGi?a`IY-3T;Kcveik~hzgo_9Fg zPV)Z&_jQXI{)geyw|^RxE3brw3F*SiiPk~QV{hw-?!LEj-HC`}N>82rTeADe$CVSq0&jE zA%wgi={YNcm3398@07Fs3q`9+Kp5?KmuvDZ|7zd+@kUwifg_j*zh8ezv9!WiJ$m9a z*F38-sm(UmEp9UKxnXrQtnLN?0NSzZgS|)hnytUdSyl+EM_ng$ z&kh?*uK#W`^K3gC9AnSD{$$U-w{-lREO~hlEpi{$zIe&#Ii^KTBi z{r+fdp?O0qSL1Eibx_mxibiWGc0Vls{A78|q`&X>l|#W>dxQ*M)yN!eEo$mxx4ppH zy(ONUEGcI(NbRnRcGpEoevYpgE7t(d9aEUV6@0TF>W z2Y7QJcc`NQ+MlV)$@41x$K9ONZh5KQ@>09yrFP3p?Ut9?EibiOUTU|z)NXmH-SSeq z<)wDZOYN2yTIc_n7G&)O>(kXg?LCN6T6)yx^Dk`*N3F=0B2@qY002ovPDHLkV1g-~ BG3x*T literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{e!2~4bR|aYUDF;s%$B>FSZzn189WdZI@@Ccl z`l7rHot3BD(y}D)N~$h&6;Iia6`DKAd44kgntgkoz2E=Vyz5&~ZMmF^-}fC)7%%FI V$VMH^n-4UL!PC{xWt~$(697wIDX0Jd diff --git a/collects/teachpack/2htdp/scribblings/img/28.png b/collects/teachpack/2htdp/scribblings/img/28.png index 79bb91c201d552d52c96bc9f42904b6f06873e2e..c7a53e79ba366bf6b7f245a6cbb91a57434a17c9 100644 GIT binary patch literal 2161 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 diff --git a/collects/teachpack/2htdp/scribblings/img/30.png b/collects/teachpack/2htdp/scribblings/img/30.png index 08e873666626b50f94bcd011aa362b10e1331e97..755b55bf26b2837379efe9f5e5a8225a58f57ddf 100644 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^#vshW1SGc}US12N9(uYshE&XXdvhaivw=YCLuIci zM#>ZPZXQ~8o-gvK@I+BPX@e&Bf|utq1%=$svlM*%_pRlNr~1uJ86lyeOP8(LdQ775 zoUHE5XLGzY=k}$Yag&rwt(fxgs<8DXZJ(9RyrQdC&{b<{ApP=_kpXCO%xr0=E zJtgLMt0rFX@8sk=x-7ecmfgN1@LpgEl6=_QEkC>N3tX2-4W6mHSJBSU>+J0%JpD#C zr#@&LUJPSof2xm*e*ga7dEa({Hi2i$`X%NYip|iA{r>8=+R~5@ANl?=#OyX>xvwR( Q1L#=>Pgg&ebxsLQ0CB5(fdBvi literal 2121 zcmV-P2)6f$P)TP@L`&!B}6thHa>m&G(SI|OeS-=oLa3`sZ=b>Rw@;z)7jJ0bL!M7v)NoLq7bz? zl}d%f;c~eQPdhp~{C>Yuscc&4VzD?gGxO`$FaC;3r8;)(*xtQ+r3F)|)YR0}moH!H z%44xu#>dBx9z7})dH3$!9kO{)oShU z@0Tujp-`Bfo?c&H7v2g6gA!(c`}Xa@g9n8|q0s}QqoX4uBm8N#TD@}R%DsE{q{~x_ zLZP^N_3Gs0Bt=p5ty{Nh@3AZ!3WYe1tCPv+^J=wv*REZSURtSCUcY{w%jHDxuB@zh zJRXfkBfJ%jM(^Lh&$6sUiKEe|!C=_8Zy!8;{P^*W8#g4L7v;l;57}&XczBqqyAg}U zN~MyhOgtVJ)&);E9L{7ijqY+BH#avYyv{Jp!-o&~MkK-1)YS6wGCYn(qfMU|-4`!j{A)AEami#-S|*>*XS3P5i{)}T9*?7_{QdiPZT!#7%%Id%EpOhu z0RVWt-X~9<$Ti#N^SyfY%5Jy+wRv@Q6{Q5i;9p)|Mrn|c#l=Pbcy@LcQHm!LiNH#~ zaN)x2?CjaIXHlfAR_pECw?BXW?DP2m09$NEkx!*kbyt>_mQaff!1wRp;XyW=tsTY@ zsZ=T-KYoPAeSLk?)6;WvbJwn2^Z9(jtjTCJo0 zW!YRV#}8T@$01f0q);fNQYpLL&Kob6Xf!%BG{m0<0)apvaOcjQY&IJTg%%eV6N!Y! z=77-kt+yc7^Z1oE6t|OYin!hGPzuiAJSx17B9kaoZRTB1+f`6 zV$){C!~nu^9G_Insw_yQQpsks(z7LLFed3Cv5#tYGOI!)qdSsoHX z0RT2OHsp#yKVt|&a=DzW33(kI9Ua)RfY9cAK98q$ZEX!Nd4$+(Hf&kI$F^KCSWOZ$ z-lpPpYZtO`I-S_E0NRXEbdKYS#iI12SAu*#Z@1g=WL++o(P+ezg-`%DL>Y!bPqT$s zEEc@3yQilITPcL9R;zgKVi*QJbrVvpR$<037tysbSy0&VStt~wC)?7nEQ?Wkhr@B` z&>?K45PX}9#Ujag18qiM28Ij_3}9>Ip&G4zHKkA}5ZY`o7!W7G5WC%e`t)gRjXV@~ zKU6FhNn#t;^|^EB&^zI=u`!f2_NL(5%(5(r%_@}&0HD+9E?>Tk5--7Eki7STP}q5I zrBWfWS*=#X1Ha!tHZ~^xu-EIobmkEF?+^A&PB^qVSfctX3g@ z>5WFC-09TzLgZ(frZJY|91aJGQgTSgDy!8BXA9^MuHcb_+3`YDDwRT^=~2x9XxmtPuKQB$sK8U>hg-d zzCP*CZvFlJE$_V`RIR&YQ8xkBXf(lKuuXJyv3HOD+WuAJQ)oQhH^|ph00000NkvXXu0mjf+aVY$ diff --git a/collects/teachpack/2htdp/scribblings/img/31.png b/collects/teachpack/2htdp/scribblings/img/31.png index 99a2eca3205e28698bed3c6923a04f7d5ddbc416..841284164bf07a52bf92369249af6ab72b1a8b5c 100644 GIT binary patch literal 1297 zcmV+s1@8KZP)bC90&0CCWd-8bz&xl7-Mp&npT@2vb974f(H*OMfVi!#RP3B1;L0|Ej@^<2aBmt zi9zwOD%gs#iQuNX{i9B|V~t8N5?%9W60=?^l|(Z$dx%)8CZc`SadD zhG9SqAxY9?GT}JBxVY$YxqLn!MNtq!hGE!jwm={diA05kg?I1XRVtMTg2d7%jBW>m z!I6=Xo}QksU%!@>mC5CDg+hU07=~dG!mv$I)aK@VZb~qgO@87ShtHUtt z9Gr;|nx+Q^2KaowN~JQJ&HMZNkt$EbZnxLh*QcbUG&MEt?(RmZJlkGhU%zwbjzXdM z^yyQKUN$qG(rF*TvN1nVg(NQS{}@moeG1v$FsIi^UQ@ z9M0zErbr~}@9#gy9vd6ua=8RSToxS8*47pPK(E(FvX-E+mlMABO@bM0f#d)GsENYyk74~yS25oyuAGC;BXon8>_3Uf3iuEp^v{)>jpPy$K26_ATtw11< zNF=em{o@aWu%@QQU@!mx5UbUyQmGOHhf`BiGdemN3WbmlA3hWn6(!P6OG`^nPseeb z1tEO!;6X}CN+S7ht*^gfJ8eCHT~7n!a}J8p39?nb@X_ml&_td;R)#BsDeFs8Q@7`TvzdL(7<~6hHn~ROGA%w-5#WJ4k zcmYLG4?`M7v|`|JjX3qtE9HU+_a40H9W@1A#zaUtc^ngfLPQ0ugbNxS^q;udnau z^KodiSS*9VpwsC-fBt-7yEwBrQd7C4y!Q9nwzjssyu2R+I@-$4&VK&@Cdf$jt1>%=#ni z(Vve106LxSbmbXq;P&=*u~@vix_V)rqN(@)zBm43eErvJu~^*F(sE|m*=zryp`p~& z)ZX6S3-bpD2Tz_n;c~fA)_4*BdDv_=g+ifHsc;!NEbPR9aC{;dDBqR7SKJ zhM_3x#fujhhLx6{(V;R#8#W)YR0uqdez7696C(2n-Jo>-BoO z-CkB!rcfy4ayf=!X=!QO+uMG>|I3#z%gf7Vv)ScxRaRE2)#`$Rf>@r5^X;R!-R_Br z2^_}>g7A1ee!ri?;h-pbzER9iKw$I2|00000NkvXX Hu0mjf@oR|` literal 2270 zcmV<42qE{0P)Rk*=a^=PUd|?x3Atf#a5?kGx6=mPEuY#&Kah_j}Zso>vc)S{`^LTaw z1uUtJfym#zUs?&=im<|>o%Aj z!UktWQ3H{b7J*Dw4hxxj4yo?g;JhA7%Zk=G6o_h?on4C!&H+81DG+(S-Pi_aUFI4V zGF2nmZpQ}aNL&YJSy7^iY<kUq(m)Isu*ECbF|xl06<9UR$4Ui+;bN7ip9PH zwyjqTW14mk5CEjol3p=MR#Mr@CFkx31ptW*j?&^Okz>e;KdnBM7v`jFTD4fwfx|R! z+g;r>N>w3)rLjaxbTyeuFAD07D~Z{u!X*Cl2Jy-d%tI#_L&MxwP#F=^M3b4)6(K~` z58e|(!A*adNvnVUT>=1h4{emjU6v)BWf^||t9S|FJpOVmxwfh=1*jj;R^6|fDDiyb zH`6PNTlzvtRL8Dqs#SLYsJN%A3+ZfuVKl6Mdb>v9;hUGdpYMtYhxBHhc@#T>Pydw` z#oA@Z$G3JxL58r~x3Z$ZPk^yy=1+1L1}j)1vh6%54ZB&O`M)rRWX0A;f4-s-#px=2b|fTvr-V>23!suD(a~i-aL7uM+uTm0 zj07vi0OwRf1y|u~cwM}Hb!qZmq$K}$IGM9Q+B0;_j{Tr=Ad)noXcb>Jl_+qVn~7ig z`OJg6;qrnfyq^8w7mxpO!;k%-av;ip<&bLSUauA;lN)YqaUuEZ_vVv{Y7zVI*H=Ei z9l(B82@r*=XND#T116Hwb2g*==9deZbnVb}{o2x!Z+rIo5sk~)M3bt4h?7aH0B~!} zA6(PaW058GkH1~Se_jy~OJmw6$5KXWZxctPlJfX19TvOrC^7XQiv7eq@Hv}J6d0(< zI18G*7fEZd>SAomszwZrnU9m<7uGtkFFn1OPlo>lL$d3<1DfF*&!mN$h2rOh{{fL#J6VIXCeP0N9Y=-8g5CK}g@w9aa+n5CpWi zaa7&5heQVQd?9A2orVB_Ai!qUaR`7SQO>pjz}=1$=Q_J7*}$tEO?KUeS&R)W*?CsG zOtY2E>!{;vx_y4Li{x#DkxqcqW$2j324|;D2j^A?m;cE;J(_VUZ zM;G#(b^J@K-JJit=LM2A>C;&6APoj|<>}yfn}MV^|L!2iQane;H5>@EaCEVsM+kcQ z>FG(Wj+CZ}-T@i_I$to?ytyL!2d%|lB}wsm1Jl!Mfj}Y_%P`0DCj-X*c;-bZ2Av-k9GXfB*ge zj*ZO-RS%z&Bzp11y%#PV9~x@QT`5GGHm9bE-_y#MTsd%50@^D=W>DqXQ$0nGx2uXOxCibjbXK( zcXK$&{Ra!;$G+vzn-`pZ*#!WLi_y2={#!h*BQsG|_44J3ci#ColH3u`59a39H*xOv*s8R< zZDyu@3;Su_moq&1-LTP!s_GN!*jvs;b_5}&d?L2$D-(7Q;$JvUkcJy#cDk+)T zyQm-j)RHsHis(IHwKdV+DWPH`b?|W0g`f2>OhFR_0cXzi^!2%BX9MAI?WVWg&b{^4 z@VoDhwzOCPfT(yrYa{Mnvuq?CBy3*4bA>T%-J{1TDnNj zRx^M7)5_=fBYEal8$J4c&*_(4Rc8Cnou{{N&wcXA6Q8fNPiC<&!^52;BYmTzeQZ%k zs>~Sxgp?SFr0hJ~Y}Jv9=b$JsKO?RA<*vO{XScq>D;|>`P79%R(bI0~|GHIsn=uy4 sc)fw8rD!mi^mzDv`<(s#u8M2ze}@5Isz&zdvj6}907*qoM6N<$f)JNFSZzn189WdZI@@Ccl z`l7rHot3BD(y}D)N~$h&6;Iia6`DKAd44kgntgkoz2E=Vyz5&~ZMmF^-}fC)7%%FI V$VMH^n-4UL!PC{xWt~$(697wIDX0Jd literal 2368 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 literal 1000 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 literal 678 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 diff --git a/collects/teachpack/2htdp/scribblings/img/37.png b/collects/teachpack/2htdp/scribblings/img/37.png index 26ebdc8f87eeb91e80bcee7e704ff1fe29f98ebc..9c4330165b69b69a01e3f9f24ae61a2ac93bcf22 100644 GIT binary patch literal 2368 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 diff --git a/collects/teachpack/2htdp/scribblings/img/38.png b/collects/teachpack/2htdp/scribblings/img/38.png index 5051608ba566bfa1776e147cf1bb6baedb8b8cb5..36949fd2ba1eda81e667819120c20e16ba33c0a9 100644 GIT binary patch literal 1007 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 literal 2314 zcmV+l3HA1gP)fpUlrNM{d*{NV^rDoMw7&(9a zAevXys-KQd#}u{t=6|xVgmWq@&xFL~KF!N&;L$fh)k`=}%qEsQ#tWF7Pd0cyD}fSc zMb&4+%PP5mOim6bat)qR!%^Zq7ZDXztMO?8GvRb2=d%(hah{LVQE~ynXr^J4Ss^TP z)-*j7&zcdC@@gz4HF8P~$0FxQGN)>0{ZJ@jYIW8u7CDEkoJ^tklYNXWa<*iyv6NKP zqpfu;a*n4ha8@-fA?6!1pOpXtfK*mC?EnElHm6t>Q&cURuby(QeUJbkN;pbOXJwwHs^(!G{+->O&(S2G$wkJdK2B#I z89pEgLes3BnvW5ru7iZ7F)=Iax^Cbsrt}Zah-1U0MLc@=*DwCq*}s=A|BN73v!+N& zGNy@UB;$@qCG>aRN=3scL^Q&ge z2B77tUv*(P`L15f%}plbp?RRYr2+@%a<4?V*0hqbrO%jgfjZon(%PQ zYSdXo`9W~)pE+5spLTqDX-y<#2)lf%YC12t0U$5I;D1boq7NsP*}&?1b!5I&P>Ck5 z4*-V0%;zPuKXUu}>Ibc;c5$~h1XmLP+!?e$vwvAl7v|pWfkeI39B$iL~RaWYeidC9Lu*Wh0k+^!MDTl1!C&L9j=OyhA zznzkD^@F+d=VoRCkLRu*QMjC0%7F+6_P|n32Y^c#g5d>IH5OIT|N6&i?BU9R7z%UV z977_6&za?jY(~9$$%4gB-4};%C$L8>0-v*!CGEuO9FK->#&agDx*U&XS0kFj3`?90 zsjB$5&`zEhx)HZ3H9DM%N9{&42mn|bN7VvHDK_JLV#HOtj0CYWt zStst><|=?2MAHt6LixO^X}aIf_w+RH-rebPEwSR#g0*>_>1_R2 za-EMiyxF$P0_V-!DT)RF@HA8HoosN z!+rpmo=&{+#z*P2g~&wL_0y*Z-+c4mV7SNVs?ebUy`4=}-+$*2Yi9QQ4>9Gby1$Lt zd%#y$s)&|W=K1fo0KmnIV>zsn>zOmR$HyZ}IQO)>Ym~d)PP%g$`)_GOyY|;nwcCT9 zJz(^RFCOb)ShG>hORugYNdf>exSiCxuHU*fyM!}KJG$Fk%L#1jskQyS_d|{sYQ>>P zUgF4#@Ttj59sg-p{mBCCJ>c8<|I@3d$7@EU67B7-BS$tFXSt=zQ}zGsU9Cc^r`A1< zQy^ac8NZx`Z|$dd?5S=D`wlk$;N_0mbKST_c=beg@$u-onFaQ7m diff --git a/collects/teachpack/2htdp/scribblings/img/42.png b/collects/teachpack/2htdp/scribblings/img/42.png new file mode 100644 index 0000000000000000000000000000000000000000..26ebdc8f87eeb91e80bcee7e704ff1fe29f98ebc GIT binary patch literal 865 zcmV-n1D^beP)HU8_Rxr_Jb$9H(s``mlOz5Bg$kc6H(IYBIj zcpRAwWEn0OBnd4oXl=#4d%9)quk3j`ZP*)BOWwY{vge;aBb&8i!1^|de!fF^mECvAL_}B*f`*#2k$)pYT z*%^{ah@U@gumSAtLF97w*ars?I@>YB>eny(>{JTE;jqWfWbCu=--i&w9=oOnLXzyU zyv9^3DSXlk+ne)teoRS*DcHR`K(y?`}bku zms$4mGH=w)yS=e7Q{Zs;CahwoQfz227_O`1;h_ebR7%uccv4Hp#6mc6XOnC5e-hm)C~I*h;OfabSQRkID{*LR?s2I<0*&l5|jK6D-U4 r_6>;yj*j5-p|KI|?eKWYIm`b55(6UE`4<<`00000NkvXXu0mjf+gz>J literal 0 HcmV?d00001 diff --git a/collects/teachpack/2htdp/scribblings/img/43.png b/collects/teachpack/2htdp/scribblings/img/43.png new file mode 100644 index 0000000000000000000000000000000000000000..5051608ba566bfa1776e147cf1bb6baedb8b8cb5 GIT binary patch literal 1039 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 literal 0 HcmV?d00001 diff --git a/collects/teachpack/2htdp/scribblings/img/5.png b/collects/teachpack/2htdp/scribblings/img/5.png index 3b61141be6dadfdf50216ed2a4b95b6f08059956..47c9606c83efe8f93d71ae4a192ecd3b0c699e81 100644 GIT binary patch literal 656 zcmV;B0&o3^P)C5j7zW@sDq1UIgAfF9C?Z&JD5wyriwMQZ)z%iJ;L=~==I?Oo(#6F=96LBTI4FTe zl*WbxM3HJStwwSO!FzkJx3xAo@08>m@|^GcGK7+4+2iqmRLqBmhX9U`kI8r@MNzJ< zu7<-QA#b@{%CdZYeXVI4ArC;kUN4nOB)r99vA!x6iw_SEhI{M!0IXK4Y&JU{kB#*< z^#Kq?F_+63I!JRc800u^bKmWD9S+CY*_lybI-UOOiN#`RG#Z*Q`8~f)R8_sWxR^{P zMwItqewzq_aC38GglG2oe1ahSyYTq%=#w2B$1w~OjYjnW{eJ(Kdu%patJTtFe(?Ex zyBsSJ2u!C_9lYItCN3{8f9{!WHk+a-yLg>W$LsZm!{Hszw>?g$bN9`5yS?3R|EQk_ z2M6Ce-^t0z>+9?Op2=kTW=D|E=lA#aOSxPo>Ny+^j^oIA079YAd_E`V0Vos-L_Gj^ zcXvcRr_;&vJUI`*>FMd)+Z#C#!0qiVQ4hfV{XJ37<#P3UJ#rp^NF?(9{{FdV*3pwB zX*QdsQYjtZ`E@Fl3ZZ_kL(}xr(-S!l0L!w=<2ERrF4o(~3t6uBA!0KWji9YhX?TLPE>0000a;Gdb@wj0yw>qs*s_pTlT6VAvwY$=Zij&XXOBOw=YEj-pFwS^nqK=C R%^sj(44$rjF6*2UngA-4Er5ig66h;Mc0TEEU=lx%A+L5I!3R!D@uviLhGWKY(d?$t=iRNm|$^Gs{g>yaw;Afh69DQ5+%i0_Eu0A=` zUfZrV@2Ldz76@z1L}@H`LrqWAJpB{;1Ns4|iu$o}zU$F;#&&PmYi%jJOz=V=tf7(> zxscJWO7f!WQspG@Sd0K;OvSbl6evgb~(P8@wZo$NUV zVZ~Y6xz`uB{u5mAgXu7x?Ado=Wkv2s=kM-&bXjl;11$Ifc#Njb@3x!+&7Lxa#b-Q- z=&gXN$abo)kPDSn9srX3L@WPL%*dmb&?fE1g05D<{MX}bVXfa1Om6_+ T|43OL00000NkvXXu0mjf5feur literal 456 zcmV;(0XP1MP)IHCd6bgG8&1OiGhg0OQO#m+?(sI zdP@K4($mvlPVy{AAUTT#io$#@yB~lrK*&rwEeu2KcB0vo+J70TGYp3W0&KTv8m*T6 z+2wRyr&a^#bWl|e2j}!ggGhw)`S&%Mq*!!FKb_Dty50Yk*$hQtI(0&?R*A*#7fU4) ziI4To2A_}7=zjfpL{(|GKhp~ZGMVR}MJq`c)#YiQexM z3bEh6KAL6TXS!h!jZ&{$&{*evrq}C4qZo#@jz!)FeZMCZqTiRIFJqqfK`)m{rEJi= z%6qG?R(L#&$M$qg^WN&&Ecv``8q>U2`e=mT&wBli&hxxidOS|0@+N(mhrEA!w~MB6 zI(?)+2ik2^mE#d`eY;%3>lL}2 yjeErF(KONPiOEFhy1?y52P)i=T>crqA>YSF58MDEQ z4_j_!4D;11gWU{?)H7c98lUl6A{C9XA~{q2HHs;|B6&2%bR<*9+Cvy)GY&oz9gIe? zwAmUTrOmccECOSWQ>D$ZRa(tq8SG%#2OSs^2g5$-z>wG&dvPk*!D3Lb!(N|Y6z(ISum-|U>0;|%ap;j}a}gqBOP0Wy|kBee8p zEXjr|0c3C`>@Q?y_?~X;_9G0>(~aHUz^G;8Ovj!wTGX=fV9asqRrnx;wAPl%XkhpT z!`aKgfN#{mUVTQ%k30Smz}WGRk{>~gfD*>px6cSDVVr%h7#i8q!>Kt=H8LdR6(eo7 zMABdek<@rlx?+T7t<%F5BP?s39$E&|0)9*$(~9Iw_ZRGzvBYcpHUN>(aycj@TE;C| z+ttud%eZCsbv5*JVN?=te9B0RHnglHHZXk4VY_BUaXS)%BU6*uglf>oZYE2mHQsYJoHLxy~mqu+>}Y@L zpK>yn!y?rwPkt9?=Db!^*varJHc|Vn>Q)|Gt@wR^_S+@cp3DtSy`OK+;1J8NsboHT QE6^MUPgg&ebxsLQ08R@eg#Z8m diff --git a/collects/teachpack/2htdp/scribblings/img/8.png b/collects/teachpack/2htdp/scribblings/img/8.png index ee6308d544b4dcde85b25eedc661d90eff171ddd..44d0e2366749b53bd98933da6663d7afb1d58281 100644 GIT binary patch literal 674 zcmV;T0$u%yP)0Q#?OKYjZ;gz>&QS^w}BSrJp}9Ed4h zWW~lHh)p?jZZzeLAZ`o*SPo$9&*=fcsyuOS?9b@|z-5w_!Pp^C2II>lJum=ZRk>WQ zquI8G)8#svZDY87>_@Y0jCmMc#1kjLMLd~@QHKEltIExC@$>8qSIfoEvojht!)<3; z4@7L3*vNhVHqCk(w`rF9zR&;{UD7$jq0zfbI%haA>Y^NZ9$%z6MxIv}rNRgadB~Zy z@sP8S5QPE#xr zyE=@kWNI3{WiY-Wv$UN0~VH!gX7w=oZ+bM5Fo=fYLX0F#DSRtk-! z_Qs{G6dDbybfOm#8&+8wg&*9c!dL!v+@#aO4=fGPd%JXMWX6j|m*~{UjJl}g(L3_I zx==g}g%J{RFOA-NLAV+ipnCT;dq`zS-+j&SR~UEV=#_-4nL!aB1ugc(DynxrR-f2j z1RbEiH>-`MpaVqLZH((=%7WwFf(5~~I9!bl09bO%!e8lY@O@x(oYXV8r8f$EE#owd z&-SACES{W(v10=c7svG6t!wO`piEC+2F5yi5pgKvHF|Zz)zX0N5?P$M4UF~1CEC8+ z7&R+HN^92ftl>T||t(715|so(P44F1}J>U=!i*53|{q{AL4}iw#eN zT<%N0P+(?D84f?@2LlKKV_p6jNG}h=HIUD%+giMl8gMwUUTgBI}Ya0000~!PqrBH*5 z_gI%4_Y*hRzbm~__}pK+UlZ0}(h2W&m%m+Qc|YjXRk81151&N?f7eIM@;q6odsd~@ fa(VHeDu(@f{Po|Hd(H#xV(@hJb6Lmil+XkKg+@U% delta 562 zcmV-20?qxI0lox~7k?xO0ssI2o1BDy00067NkltmYx79}01HX(W`EJCjl}-*lpx^@cqgW| z?Wm9LX8wE_I+`{cbz(CnPX;^Z6lq9s(7LTJeus{>bCSeS_JJCrBVUENk4x)Pf)TKC;`H*;H-8nCt5DDuo&HUJ>8 z$7so5me?c?Rq3iO3;@`-*VF5RY*o4+v)Hv6CCcP$Q!o@Z zi(Py3_a{EAb!W4$S-i3d4%X8j&BCz1S-i59`%4l>joYxNS-jYhtLuwDZNO==&EmzD z#Xe)SJv-Yhwzj7&Z1u4{IL%J8*xE?ww+%z4SsVj^u^b1s+JOz*X7RAK8A+78%WmK_ zNIXxQ#VbkVn;$-X?$QPT?3r)he>~#;=W%%c0a-0+{>P>gHvj+t07*qoM6N<$g2)yQ Ab^rhX diff --git a/collects/tests/2htdp/test-image.ss b/collects/tests/2htdp/test-image.ss index 52a03a1c14..b70779e316 100644 --- a/collects/tests/2htdp/test-image.ss +++ b/collects/tests/2htdp/test-image.ss @@ -68,6 +68,28 @@ (map loop (cdr (vector->list (struct->vector x))))))] [else x]))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; compare-all-rotations +;; + +(check-equal? (compare-all-rotations '() '() equal?) + #t) +(check-equal? (compare-all-rotations '(1) '(1) equal?) + #t) +(check-equal? (compare-all-rotations '(1) '(2) equal?) + #f) +(check-equal? (compare-all-rotations '(1 2 3) '(1 2 3) equal?) + #t) +(check-equal? (compare-all-rotations '(1 2 3) '(2 3 1) equal?) + #t) +(check-equal? (compare-all-rotations '(1 2 3) '(3 1 2) equal?) + #t) +(check-equal? (compare-all-rotations '(1 2 3 4) '(4 1 2 3) equal?) + #t) +(check-equal? (compare-all-rotations '(1 2 3 5) '(4 1 2 3) equal?) + #f) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; circle vs ellipse @@ -393,11 +415,9 @@ (test (bring-between 720 360) => 0) (test (bring-between 720.5 360) => .5) -(test (round-numbers - (normalize-shape (image-shape (rotate 90 (rectangle 100 100 'solid 'blue))) - values)) +(test (round-numbers (rotate 90 (rectangle 100 100 'solid 'blue))) => - (round-numbers (image-shape (rectangle 100 100 'solid 'blue)))) + (round-numbers (rectangle 100 100 'solid 'blue))) (test (round-numbers (normalize-shape (image-shape (rotate 90 (rotate 90 (rectangle 50 100 'solid 'purple)))) @@ -572,3 +592,44 @@ (image-width (rotate 45 (rectangle (image-width t) (image-height t) 'solid 'black)))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; triangle +;; + +(check-equal? (round-numbers (rotate 180 (isosceles-triangle 60 330 "solid" "lightseagreen"))) + (round-numbers (isosceles-triangle 60 30 "solid" "lightseagreen"))) + +(check-equal? (triangle 40 'outline 'black) + (regular-polygon 40 3 'outline 'black)) + +(check-equal? (equal~? (rotate (+ 180 45) (right-triangle 50 50 'solid 'black)) + (isosceles-triangle 50 90 'solid 'black) + 0.001) + #t) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; square +;; + +(check-equal? (square 10 'solid 'black) + (rectangle 10 10 'solid 'black)) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; rhombus +;; + +(check-equal? (equal~? (rhombus 10 90 'solid 'black) + (square 10 'solid 'black) + 0.01) + #t) + +(check-equal? (equal~? (rhombus 50 150 'solid 'black) + (rotate 90 (rhombus 50 30 'solid 'black)) + 0.01) + #t) +