diff --git a/collects/2htdp/image.ss b/collects/2htdp/image.ss index fbad8e8f2a..bb77569424 100644 --- a/collects/2htdp/image.ss +++ b/collects/2htdp/image.ss @@ -71,6 +71,7 @@ and they all have good sample contracts. (It is amazing what we can do with kids star star-polygon triangle + isosceles-triangle text text/font diff --git a/collects/2htdp/private/image-more.ss b/collects/2htdp/private/image-more.ss index c6e5259fcb..95fab9ae76 100644 --- a/collects/2htdp/private/image-more.ss +++ b/collects/2htdp/private/image-more.ss @@ -658,6 +658,15 @@ (make-bb w h (- h d)) #f)))) +(define/chk (isosceles-triangle 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)))]) + (make-a-polygon (list (make-point 0 0) + (make-point (real-part right-corner) (imag-part right-corner)) + (make-point (real-part left-corner) (imag-part left-corner))) + mode + color))) + (define/chk (triangle side-length mode color) (make-polygon/star side-length 3 mode color values)) @@ -681,15 +690,15 @@ (make-polygon/star side-length 5 mode color (λ (l) (swizzle l 2)))) (define (make-polygon/star side-length side-count mode color adjust) - (let ([poly (make-polygon - (adjust (regular-polygon-points side-length side-count)) - mode - color)]) + (make-a-polygon (adjust (regular-polygon-points side-length side-count)) + mode color)) + +(define (make-a-polygon points mode color) + (let ([poly (make-polygon points mode color)]) (let-values ([(l t r b) (simple-bb poly)]) (make-image (make-translate (- l) (- t) poly) (make-bb (- r l) (- b t) (- b t)) #f)))) - (define (gcd a b) (cond [(zero? b) a] @@ -798,6 +807,7 @@ regular-polygon triangle + isosceles-triangle star star-polygon diff --git a/collects/teachpack/2htdp/scribblings/image-toc.ss b/collects/teachpack/2htdp/scribblings/image-toc.ss index e2a29de2e0..14177c1d16 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 - "38.png") - (list '(frame (ellipse 20 20 "outline" "black")) 'image "37.png") - (list '(ellipse 60 60 "solid" "blue") 'image "36.png") - (list '(scale/xy 3 2 (ellipse 20 30 "solid" "blue")) 'image "35.png") - (list '(ellipse 40 60 "solid" "blue") 'image "34.png") - (list '(scale 2 (ellipse 20 30 "solid" "blue")) 'image "33.png") - (list '(rotate 5 (rectangle 50 50 "outline" "black")) 'image "32.png") - (list '(rotate 45 (ellipse 60 20 "solid" "olivedrab")) 'image "31.png") + "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") (list '(beside/places "baseline" (text "ijy" 18 "black") (text "ijy" 24 "black")) 'image - "30.png") + "33.png") (list '(beside/places "center" @@ -48,7 +48,7 @@ (ellipse 20 30 "solid" "purple") (ellipse 20 10 "solid" "indigo")) 'image - "29.png") + "32.png") (list '(beside/places "bottom" @@ -57,7 +57,7 @@ (ellipse 20 30 "solid" "slateblue") (ellipse 20 10 "solid" "navy")) 'image - "28.png") + "31.png") (list '(beside (ellipse 20 70 "solid" "gray") @@ -65,7 +65,7 @@ (ellipse 20 30 "solid" "dimgray") (ellipse 20 10 "solid" "black")) 'image - "27.png") + "30.png") (list '(overlay/xy (rectangle 10 10 "solid" "red") @@ -73,7 +73,7 @@ -10 (rectangle 10 10 "solid" "black")) 'image - "26.png") + "29.png") (list '(overlay/xy (rectangle 10 10 "solid" "red") @@ -81,7 +81,7 @@ 10 (rectangle 10 10 "solid" "black")) 'image - "25.png") + "28.png") (list '(overlay/xy (rectangle 10 10 "outline" "red") @@ -89,7 +89,7 @@ 0 (rectangle 10 10 "outline" "black")) 'image - "24.png") + "27.png") (list '(overlay/xy (ellipse 40 40 "outline" "black") @@ -97,7 +97,7 @@ 25 (ellipse 10 10 "solid" "forestgreen")) 'image - "23.png") + "26.png") (list '(overlay/places "right" @@ -107,7 +107,7 @@ (rectangle 40 40 "solid" "red") (rectangle 50 50 "solid" "black")) 'image - "22.png") + "25.png") (list '(overlay/places "middle" @@ -115,7 +115,7 @@ (rectangle 30 60 "solid" "orange") (ellipse 60 30 "solid" "purple")) 'image - "21.png") + "24.png") (list '(overlay (ellipse 10 10 "solid" "red") @@ -125,31 +125,34 @@ (ellipse 50 50 "solid" "red") (ellipse 60 60 "solid" "black")) 'image - "20.png") + "23.png") (list '(overlay (ellipse 60 30 "solid" "purple") (rectangle 30 60 "solid" "orange")) 'image - "19.png") + "22.png") (list '(text/font "not really a link" 18 "blue" #f 'roman 'normal 'normal #t) 'image - "18.png") + "21.png") (list '(text/font "Goodbye" 18 "indigo" #f 'modern 'italic 'normal #f) 'image - "17.png") + "20.png") (list '(text/font "Hello" 24 "olive" "Gill Sans" 'swiss 'normal 'bold #f) 'image - "16.png") - (list '(text "Goodbye" 36 "indigo") 'image "15.png") - (list '(text "Hello" 24 "olive") 'image "14.png") - (list '(star-polygon 20 10 3 "solid" "cornflowerblue") 'image "13.png") - (list '(star-polygon 40 7 3 "outline" "darkred") 'image "12.png") - (list '(star-polygon 40 5 2 "solid" "seagreen") 'image "11.png") - (list '(star 40 "solid" "gray") 'image "10.png") + "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") diff --git a/collects/teachpack/2htdp/scribblings/image.scrbl b/collects/teachpack/2htdp/scribblings/image.scrbl index 40f0adb452..4dc314ecc3 100644 --- a/collects/teachpack/2htdp/scribblings/image.scrbl +++ b/collects/teachpack/2htdp/scribblings/image.scrbl @@ -73,6 +73,23 @@ 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?)] + [angle angle?] + [mode mode?] + [color (or/c symbol? string?)]) + image?]{ + + Creates a triangle with two equal-length sides, of length @scheme[side-length] + where the angle between those sides is @scheme[angle]. The third + leg is straight, horizontally. If the angle is less than + @scheme[180], then the triangle will point up and if the @scheme[angle] + is more, then the triangle will point down. + + @image-examples[(isosceles-triangle 200 170 "solid" "seagreen") + (isosceles-triangle 60 30 "solid" "aquamarine") + (isosceles-triangle 60 330 "solid" "lightseagreen")] +} + @defproc[(star [side-length (and/c real? positive?)] [mode mode?] [color (or/c symbol? string?)]) diff --git a/collects/teachpack/2htdp/scribblings/img/10.png b/collects/teachpack/2htdp/scribblings/img/10.png index dbbf37c78f..e650be6e69 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/10.png and b/collects/teachpack/2htdp/scribblings/img/10.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/11.png b/collects/teachpack/2htdp/scribblings/img/11.png index af23c00a64..a2bf256127 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/11.png and b/collects/teachpack/2htdp/scribblings/img/11.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/12.png b/collects/teachpack/2htdp/scribblings/img/12.png index b7ee277187..44d0e23667 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/12.png and b/collects/teachpack/2htdp/scribblings/img/12.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/13.png b/collects/teachpack/2htdp/scribblings/img/13.png index ee1f8e9d9f..dbbf37c78f 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/13.png and b/collects/teachpack/2htdp/scribblings/img/13.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/14.png b/collects/teachpack/2htdp/scribblings/img/14.png index cd170b1c51..af23c00a64 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/14.png and b/collects/teachpack/2htdp/scribblings/img/14.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/15.png b/collects/teachpack/2htdp/scribblings/img/15.png index b2593ebe1a..b7ee277187 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/15.png and b/collects/teachpack/2htdp/scribblings/img/15.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/16.png b/collects/teachpack/2htdp/scribblings/img/16.png index d4b7ede7b8..ee1f8e9d9f 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/16.png and b/collects/teachpack/2htdp/scribblings/img/16.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/17.png b/collects/teachpack/2htdp/scribblings/img/17.png index 43659d6e16..cd170b1c51 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/17.png and b/collects/teachpack/2htdp/scribblings/img/17.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/18.png b/collects/teachpack/2htdp/scribblings/img/18.png index ffe47dc980..b2593ebe1a 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/18.png and b/collects/teachpack/2htdp/scribblings/img/18.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/19.png b/collects/teachpack/2htdp/scribblings/img/19.png index e5bec8f1d1..d4b7ede7b8 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/19.png and b/collects/teachpack/2htdp/scribblings/img/19.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/20.png b/collects/teachpack/2htdp/scribblings/img/20.png index c7a53e79ba..43659d6e16 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/20.png and b/collects/teachpack/2htdp/scribblings/img/20.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/21.png b/collects/teachpack/2htdp/scribblings/img/21.png index aab464a076..ffe47dc980 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/21.png and b/collects/teachpack/2htdp/scribblings/img/21.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/22.png b/collects/teachpack/2htdp/scribblings/img/22.png index 755b55bf26..e5bec8f1d1 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/22.png and b/collects/teachpack/2htdp/scribblings/img/22.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/23.png b/collects/teachpack/2htdp/scribblings/img/23.png index 841284164b..c7a53e79ba 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/23.png and b/collects/teachpack/2htdp/scribblings/img/23.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/24.png b/collects/teachpack/2htdp/scribblings/img/24.png index 60a97a2408..aab464a076 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/24.png and b/collects/teachpack/2htdp/scribblings/img/24.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/25.png b/collects/teachpack/2htdp/scribblings/img/25.png index 79bb91c201..755b55bf26 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/25.png and b/collects/teachpack/2htdp/scribblings/img/25.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/26.png b/collects/teachpack/2htdp/scribblings/img/26.png index 2b68c09f35..841284164b 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/26.png and b/collects/teachpack/2htdp/scribblings/img/26.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/27.png b/collects/teachpack/2htdp/scribblings/img/27.png index 08e8736666..60a97a2408 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/27.png and b/collects/teachpack/2htdp/scribblings/img/27.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/28.png b/collects/teachpack/2htdp/scribblings/img/28.png index 99a2eca320..79bb91c201 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/28.png and b/collects/teachpack/2htdp/scribblings/img/28.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/29.png b/collects/teachpack/2htdp/scribblings/img/29.png index 9c4330165b..2b68c09f35 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/29.png and b/collects/teachpack/2htdp/scribblings/img/29.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/30.png b/collects/teachpack/2htdp/scribblings/img/30.png index 36949fd2ba..08e8736666 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/30.png and b/collects/teachpack/2htdp/scribblings/img/30.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/31.png b/collects/teachpack/2htdp/scribblings/img/31.png index 5cc44ce573..99a2eca320 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/31.png and b/collects/teachpack/2htdp/scribblings/img/31.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/32.png b/collects/teachpack/2htdp/scribblings/img/32.png index 7322f66859..9c4330165b 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/32.png and b/collects/teachpack/2htdp/scribblings/img/32.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/33.png b/collects/teachpack/2htdp/scribblings/img/33.png index 26ebdc8f87..36949fd2ba 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/33.png and b/collects/teachpack/2htdp/scribblings/img/33.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/34.png b/collects/teachpack/2htdp/scribblings/img/34.png index 26ebdc8f87..5cc44ce573 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/34.png and b/collects/teachpack/2htdp/scribblings/img/34.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/35.png b/collects/teachpack/2htdp/scribblings/img/35.png index 5051608ba5..7322f66859 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/35.png and b/collects/teachpack/2htdp/scribblings/img/35.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/36.png b/collects/teachpack/2htdp/scribblings/img/36.png index 5051608ba5..26ebdc8f87 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/36.png and b/collects/teachpack/2htdp/scribblings/img/36.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/37.png b/collects/teachpack/2htdp/scribblings/img/37.png index 96584002be..26ebdc8f87 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/37.png and b/collects/teachpack/2htdp/scribblings/img/37.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/38.png b/collects/teachpack/2htdp/scribblings/img/38.png index 12adfdabfc..5051608ba5 100644 Binary files a/collects/teachpack/2htdp/scribblings/img/38.png and b/collects/teachpack/2htdp/scribblings/img/38.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/39.png b/collects/teachpack/2htdp/scribblings/img/39.png new file mode 100644 index 0000000000..5051608ba5 Binary files /dev/null and b/collects/teachpack/2htdp/scribblings/img/39.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/40.png b/collects/teachpack/2htdp/scribblings/img/40.png new file mode 100644 index 0000000000..96584002be Binary files /dev/null and b/collects/teachpack/2htdp/scribblings/img/40.png differ diff --git a/collects/teachpack/2htdp/scribblings/img/41.png b/collects/teachpack/2htdp/scribblings/img/41.png new file mode 100644 index 0000000000..12adfdabfc Binary files /dev/null and b/collects/teachpack/2htdp/scribblings/img/41.png differ