From 31685bc496ee83b8e6544b8291e14c1c9e09c559 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 9 Sep 2010 06:58:23 -0500 Subject: [PATCH] Adjusted 2htdp/image's frame primitive so that it does not draw outside of the bounding box. --- collects/2htdp/private/image-more.rkt | 15 +++++++++------ .../teachpack/2htdp/scribblings/image-toc.rkt | 2 +- .../teachpack/2htdp/scribblings/image.scrbl | 8 +++++++- .../2htdp/scribblings/img/19e57826953.png | Bin 1726 -> 0 bytes .../2htdp/scribblings/img/1a74ac09f8a.png | Bin 0 -> 494 bytes .../2htdp/scribblings/img/26e407a14a2.png | Bin 2103 -> 0 bytes .../2htdp/scribblings/img/54a488e1a5.png | Bin 2082 -> 1870 bytes .../2htdp/scribblings/img/6a5a617f28.png | Bin 446 -> 0 bytes 8 files changed, 17 insertions(+), 8 deletions(-) delete mode 100644 collects/teachpack/2htdp/scribblings/img/19e57826953.png create mode 100644 collects/teachpack/2htdp/scribblings/img/1a74ac09f8a.png delete mode 100644 collects/teachpack/2htdp/scribblings/img/26e407a14a2.png delete mode 100644 collects/teachpack/2htdp/scribblings/img/6a5a617f28.png diff --git a/collects/2htdp/private/image-more.rkt b/collects/2htdp/private/image-more.rkt index 8f69ca0f9a..74c65d9c6c 100644 --- a/collects/2htdp/private/image-more.rkt +++ b/collects/2htdp/private/image-more.rkt @@ -432,12 +432,15 @@ ;; (useful for debugging images) (define/chk (frame image) - (make-image (make-overlay (image-shape image) - (image-shape - (rectangle (get-right image) - (get-bottom image) - 'outline - 'black))) + (make-image (make-overlay (image-shape + (crop 0 0 + (get-right image) + (get-bottom image) + (rectangle (get-right image) + (get-bottom image) + 'outline + (pen "black" 2 'solid 'round 'round)))) + (image-shape image)) (make-bb (get-right image) (get-bottom image) (get-baseline image)) diff --git a/collects/teachpack/2htdp/scribblings/image-toc.rkt b/collects/teachpack/2htdp/scribblings/image-toc.rkt index 48297d42d6..0c4abae7fb 100644 --- a/collects/teachpack/2htdp/scribblings/image-toc.rkt +++ b/collects/teachpack/2htdp/scribblings/image-toc.rkt @@ -135,7 +135,7 @@ (ellipse 20 10 "solid" "navy")) 'image "54a488e1a5.png") - (list '(frame (ellipse 20 20 "outline" "black")) 'image "6a5a617f28.png") + (list '(frame (ellipse 40 40 "solid" "gray")) 'image "1a74ac09f8a.png") (list '(above (beside diff --git a/collects/teachpack/2htdp/scribblings/image.scrbl b/collects/teachpack/2htdp/scribblings/image.scrbl index 921de46a91..bf292c5056 100644 --- a/collects/teachpack/2htdp/scribblings/image.scrbl +++ b/collects/teachpack/2htdp/scribblings/image.scrbl @@ -1035,7 +1035,7 @@ the parts that fit onto @racket[scene]. with a black, single pixel frame drawn around the bounding box of the image. - @image-examples[(frame (ellipse 20 20 "outline" "black"))] + @image-examples[(frame (ellipse 40 40 "solid" "gray"))] Generally speaking, this function is useful to debug image constructions, i.e., to see where @@ -1434,6 +1434,12 @@ interior. [r (beside s s s s s s)]) (above r r r r r r))] +While this kind of rectangle is not useful for building grids, it +is important to be able to build rectangles whose drawing does not +exceed its bounding box. Specifically, this kind of drawing is used +by @racket[frame] and @racket[empty-scene] so that the extra drawn pixels +are not lost if the image is later clipped to its bounding box. + @;----------------------------------------------------------------------------- @section{Exporting Images to Disk} diff --git a/collects/teachpack/2htdp/scribblings/img/19e57826953.png b/collects/teachpack/2htdp/scribblings/img/19e57826953.png deleted file mode 100644 index 0705890a9f632cc7ea82df056f3fed8d7bc8ce37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1726 zcmV;v20{6WP) zJx>%}7=|BVf(0hRlu}6`*(pR4DV2I>@ejx^aLFzvG-4rOBQ}^Y=<*A&(Gqs8wRt-b z6P5@iHYBqaQb2ar`z^+gU6`GZGiS~@v%7bm3UNNJ3=h{C&e?Mf0QC|jhljMVK!pP3 za_k4W*5e*NwHm#6L8THo4rMa*^($!_ISE|E-;!$S3Ocncs1(yi#HLzYI>< z`@KrF8a;VJckVDkCnl%t>gU~YXmgWRR;X5sdnjF}qoXKJ$-PCUC2XzSrwWA#XYWSt z)hbMrCvmql4F?Bduc5oR+cxIsp=tb~M|H|>;a;!9vLaYHbCt`XuBR)wm&=@6xld&> zsMmupsl&M+93;}p{cC+a_`*7tyKSRbOt6*vl&-_J11_%vxeIIMK2%`@Pv19vZc!LwBp4Q>K!;4SNoA{pfFZ zztdj|(uup(&M8yIy@AFiHg)L!_uKzV8=X0j4&5zJr%V&~&-grv$&mMZ?=&l&xLcl1 znGWvX@qHGvQEz!_X-7JAx30dYRGs?;E?(i)4cuV3UzMFwY3@7N8OL~>`&Gv&4Wq>= z73F?}qZ!P^zu%#Tu8vb$*1sE6j{6zT7P06KKDm^dPN^36Eo@yHe8w*|ol+I_8R zJYnwP=9d4``ezPCrE{m)PN``q7DKi2#JERX@p+oPCmlM)bIM4qJQ?mx%Y@SFlnkw$ zH}@FJgwp7g%&nXscOJ`x6miPYb0g3xW43Z0-1*HdZ|Fm+IOTiG=bz)Z^4Q#YulQ8l zDGh^9E04iFnH8VPI;F0|vbeQ!ChiHZ_*Bg)lW64;xr{ivFNq;Ss8;2y z;`gfLobo>I?_yUr?SCNvn4gzU+^r;>@)mAwVM{jW%OL=;ZOI>_&{Q0qasUHQ@$@Ht z%7*NbKOVWUA)UBeyqq$J+&6ra%GNJ`xYz3{SdCjTol^YZlOavxrb7 zSQS6`WJv3Kf;2njEM{d5J{i)=J)KTDiAlMGPljB1FQ$%D8l!4i5>I>XiZ~^&35klucOHjar@XY{v$NvMU6xaZUnZ2= z1kGErEYZ*tnvkeig1C!x$_{Pio(VBOQh-zPom-xUgqxR|oKto|EB8$3`M^myWp}i4 z&xHFN@=S*2=6HNQchdpOWvWz|wsP!*gx;^LR-^H8J{x;2FVox{`xeQakqAEz8QBA=n_Te){4|Ad5h%I>rB@QJ<; zXthcc6T#a~=kv6(!noOb7bN@e-$r0cY@a``KkMf>|b=pnH#MocEQlX6vT3hQ0B15`*Uvr81A1CC% U2C907*qoM6N<$f^r99;s5{u diff --git a/collects/teachpack/2htdp/scribblings/img/1a74ac09f8a.png b/collects/teachpack/2htdp/scribblings/img/1a74ac09f8a.png new file mode 100644 index 0000000000000000000000000000000000000000..6c1946d898eee13102bbeb1520154bac79997be8 GIT binary patch literal 494 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 oiA3u4x^3IWqrvLx|