From 7b9879c0e6949e4bfba35afec01fc7a1420619d5 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 28 Dec 2012 10:53:10 -0600 Subject: [PATCH] some edits to nitty-gritty section and fix up the koch curve names (and actually draw the snowflake) --- .../2htdp/scribblings/image-guide.scrbl | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/collects/teachpack/2htdp/scribblings/image-guide.scrbl b/collects/teachpack/2htdp/scribblings/image-guide.scrbl index ba50e55880..f2242fc2dc 100644 --- a/collects/teachpack/2htdp/scribblings/image-guide.scrbl +++ b/collects/teachpack/2htdp/scribblings/image-guide.scrbl @@ -120,20 +120,26 @@ library, e.g.: @image-interaction[(sierpinski-carpet 4)] -@image-interaction[(define (koch-snowflake n) +@image-interaction[(define (koch-curve n) (cond [(zero? n) (square 1 "solid" "black")] [else - (define smaller (koch-snowflake (- n 1))) + (define smaller (koch-curve (- n 1))) (beside/align "bottom" smaller (rotate 60 smaller) (rotate -60 smaller) smaller)]))] -@image-interaction[(koch-snowflake 5)] +@image-interaction[(koch-curve 5)] -@section[#:tag "nitty-gritty"]{The nitty gritty of pixels, pens, and lines} +@image-interaction[(above + (beside + (rotate 60 (koch-curve 5)) + (rotate -60 (koch-curve 5))) + (flip-vertical (koch-curve 5)))] + +@section[#:tag "nitty-gritty"]{The Nitty Gritty of Pixels, Pens, and Lines} The image library treats coordinates as if they are in the upper-left corner of each pixel, and infinitesimally small (unlike pixels which have some area). @@ -163,8 +169,7 @@ building a grid like this: @image-interaction[ (define s1 (square 20 'outline 'black)) (define r1 (beside s1 s1 s1 s1 s1 s1)) -(define q1 (above r1 r1 r1 r1 r1 r1)) -q1 +(above r1 r1 r1 r1 r1 r1) ] The reason interior lines in this grid are the same thickness as the lines around the edge @@ -184,30 +189,23 @@ that is not possible. Instead, the same pixels are lit up as with the 2 pixel wi with only 1/2 of the intensity of the color. So a 1 pixel wide black @racket[pen] object draws a 2 pixel wide outline, but in gray. -@image-interaction/margin[2 - (rectangle - 20 20 "outline" - (make-pen "black" 1 "solid" "round" "round"))] +@image-interaction[(define p1 (make-pen "black" 1 "solid" "round" "round"))] +@image-interaction/margin[2 (rectangle 20 20 "outline" p1)] When combining pens and cropping, we can make a rectangle that has a line that is one pixel wide, but where the line is drawn entirely within the rectangle. This rectangle has a two-pixel wide black pen, but we can crop out the outer portion of the pen. -@image-interaction[(crop - 0 0 20 20 - (rectangle - 20 20 "outline" - (make-pen "black" 2 "solid" "round" "round")))] +@image-interaction[(define p2 (make-pen "black" 2 "solid" "round" "round")) + (define s2 (crop 0 0 20 20 (rectangle 20 20 "outline" p2))) + s2] Using that we can build a grid now too, but this grid has doubled lines on the interior. @image-interaction[ -(define pn (make-pen "black" 2 "solid" "round" "round")) -(define s2 (crop 0 0 20 20 (rectangle 20 20 "outline" pn))) (define r2 (beside s2 s2 s2 s2 s2 s2)) -(define q2 (above r2 r2 r2 r2 r2 r2)) -q2 +(above r2 r2 r2 r2 r2 r2) ] While this kind of rectangle is not useful for building grids, it