From 37ae5a338b72e20f00e7bb40c2ea0ed925f6725f Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 18 Jun 2010 16:37:58 -0500 Subject: [PATCH] added documentation for the flipping functions --- .../teachpack/2htdp/scribblings/image-gen.rkt | 4 ++-- .../teachpack/2htdp/scribblings/image-toc.rkt | 14 ++++++++++++- .../teachpack/2htdp/scribblings/image.scrbl | 19 +++++++++++++++++- .../2htdp/scribblings/img/2187216ca96.png | Bin 1007 -> 1005 bytes .../2htdp/scribblings/img/25bd9b1ac5a.png | Bin 0 -> 2167 bytes .../2htdp/scribblings/img/27bbbb6fd64.png | Bin 1388 -> 1459 bytes .../2htdp/scribblings/img/2a03b18c0c.png | Bin 0 -> 355 bytes .../2htdp/scribblings/img/8aebbc110e.png | Bin 0 -> 359 bytes .../2htdp/scribblings/img/e58911226.png | Bin 0 -> 2005 bytes 9 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 collects/teachpack/2htdp/scribblings/img/25bd9b1ac5a.png create mode 100644 collects/teachpack/2htdp/scribblings/img/2a03b18c0c.png create mode 100644 collects/teachpack/2htdp/scribblings/img/8aebbc110e.png create mode 100644 collects/teachpack/2htdp/scribblings/img/e58911226.png diff --git a/collects/teachpack/2htdp/scribblings/image-gen.rkt b/collects/teachpack/2htdp/scribblings/image-gen.rkt index 54dc9d3510..5bb08c5f4b 100644 --- a/collects/teachpack/2htdp/scribblings/image-gen.rkt +++ b/collects/teachpack/2htdp/scribblings/image-gen.rkt @@ -38,7 +38,7 @@ (with-handlers ([exn:fail? (λ (x) (printf "\nerror evaluating:\n") - (pretty-print exp) + (pretty-write exp) (raise x))]) (parameterize ([current-namespace image-ns]) (eval exp)))]) (cond @@ -107,7 +107,7 @@ (λ (port) (fprintf port "#lang racket/base\n(provide mapping)\n") (fprintf port ";; this file is generated by image-gen.ss -- do not edit\n;; note that the file that creates this file depends on this file\n;; it is always safe to simply define (and provide) mapping as the empty list\n\n") - (pretty-print + (pretty-write `(define mapping (list ,@mapping)) port)) #:exists 'truncate)]) diff --git a/collects/teachpack/2htdp/scribblings/image-toc.rkt b/collects/teachpack/2htdp/scribblings/image-toc.rkt index 17c067ad53..c836eec9b4 100644 --- a/collects/teachpack/2htdp/scribblings/image-toc.rkt +++ b/collects/teachpack/2htdp/scribblings/image-toc.rkt @@ -1,4 +1,4 @@ -#lang scheme/base +#lang racket/base (provide mapping) ;; this file is generated by image-gen.ss -- do not edit ;; note that the file that creates this file depends on this file @@ -53,6 +53,18 @@ '(crop 0 0 40 40 (circle 40 "solid" "chocolate")) 'image "8e7c1870c7.png") + (list + '(above + (star 40 "solid" "firebrick") + (scale/xy 1 1/2 (flip-vertical (star 40 "solid" "gray")))) + 'image + "25bd9b1ac5a.png") + (list + '(beside + (rotate 30 (square 50 "solid" "red")) + (flip-horizontal (rotate 30 (square 50 "solid" "blue")))) + 'image + "e58911226.png") (list '(ellipse 60 60 "solid" "blue") 'image "d92d6a49f1.png") (list '(scale/xy 3 2 (ellipse 20 30 "solid" "blue")) diff --git a/collects/teachpack/2htdp/scribblings/image.scrbl b/collects/teachpack/2htdp/scribblings/image.scrbl index 57584c287f..fa875efa9d 100644 --- a/collects/teachpack/2htdp/scribblings/image.scrbl +++ b/collects/teachpack/2htdp/scribblings/image.scrbl @@ -764,7 +764,7 @@ the parts that fit onto @racket[scene]. } -@section{Rotating, Scaling, Cropping, and Framing Images} +@section{Rotating, Scaling, Flipping, Cropping, and Framing Images} @defproc[(rotate [angle angle?] [image image?]) image?]{ Rotates @racket[image] by @racket[angle] degrees in a counter-clockwise direction. @@ -809,6 +809,23 @@ the parts that fit onto @racket[scene]. (ellipse 60 60 "solid" "blue")] } +@defproc[(flip-horizontal [image image?]) image?]{ + Flips @scheme[image] left to right. + + @image-examples[(beside + (rotate 30 (square 50 "solid" "red")) + (flip-horizontal + (rotate 30 (square 50 "solid" "blue"))))] +} + +@defproc[(flip-vertical [image image?]) image?]{ + Flips @scheme[image] top to bottom. + + @image-examples[(above + (star 40 "solid" "firebrick") + (scale/xy 1 1/2 (flip-vertical (star 40 "solid" "gray"))))] +} + @defproc[(crop [x real?] [y real?] [width (and/c real? (not/c negative?))] [height (and/c real? (not/c negative?))] diff --git a/collects/teachpack/2htdp/scribblings/img/2187216ca96.png b/collects/teachpack/2htdp/scribblings/img/2187216ca96.png index 36949fd2ba1eda81e667819120c20e16ba33c0a9..8e2f621748defdad00f1bb8e665eee56d61b8627 100644 GIT binary patch delta 983 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 literal 0 HcmV?d00001 diff --git a/collects/teachpack/2htdp/scribblings/img/27bbbb6fd64.png b/collects/teachpack/2htdp/scribblings/img/27bbbb6fd64.png index ffe47dc980d9cdbf9445eba5db68a43aa2e4e063..f1985bc03559fee23d3db6a48542b6408c253722 100644 GIT binary patch delta 1441 zcmV;S1z!5>3bPB4B!7BIL_t(|ob8x-XjE4e#(!^&HO2-Sw@Hm!3K2m?8zM=N)Ci`v zwA6xx7)5Yj5|p~d{vj=hnz(?X($Ar{qZ>WoO8c(-#6#o``#Fmc!z%uuK#)gZGWM%lKb}^?6+6Q@8{~( zu%=X3JNrARpr=mp>8HfU>%xUr_FF9k{PGKf2I>6ywx$#nF=!AYMg$4#4RGbko6HV@ zeftFFfdh8?trq(8Ppw&_XU{@R$;wh(oO7uC9s1*sOrG5C*{}Yt*f#U`-v=-ZyZz?O zHnb$~+n3y2x_@*D!P&ig(2(o$WpZ;#Oyu4@CQKkEhRjU-{y>JuLq-M@CXkj!ak1rG zyO!Ks%FFrcD>iSolis~cem-ewR8)|XLUOWoV|jT@n#6zs4UI z;za;1T~b1VqNA0at+Fz$SRpVA3#|su&sS=y{C-K=vqy%ZpMJ7J>FG*Nc5eIPV#UVF z?bgDDTCzmR$udpNovXcjCF#~Jb?c_7Q?2B&W3_0JB$=k7qO@(B-bZx5tiE zWTbpPD}Sw`LRneP%LvA7!%On3SCyM9F!%0N+p^^3SdYBluNgD6Z(o27N%Q9m%*IA5 zqgyw9`>iD1zOAlZRa_j%9x*~6e4v^dOVE@Q=Os!SKVA_Lx^u@GmX~Yr;6QZrXc>kc zKbE9~1Qirm{s9BDbgBJ5ZFXs?!2I=BD{aFD?SI+hyoO-RHnb!!E3*V`Ll(Udw5dti z**bZ$6;{#h)QW9llI(^z0GbY62)1wD&H?gtS zaMvz;KBi2uhCO>SZXC6>L`QS(96)_NMMc!sa_3G6=G0V%4Kp@xX8Lr1ugtmG&A*NdQ$<)-e22qOy|y{n@g`A>{Y7aU)e# zEMCm|^&t+BX3U+-%$YiO&gj<SYbX7qn|vu3f`49YV8aarP{mHh=NaN8z$foJdTJQBc6HU1VkkO=|~p_=t?; zx8FE>mb|=H{^-UkNLHbn#yMV}Bex z$de~l$m?b5R6hO~AU2kpH>s-zMm-EKxs4o{!br%$ULsU_NAwxK0?ZEfHhOcvnTGwart zEo10Vva+~!>jmAhW9r{uV1EC-e1AUW=L^hUy{uP(+FFetue3Dn*rC;{HGR73>#gIg zq(m;4`t{S!o%VCnfBk2 z7Rl??=+Of6^Ut+qOTa#JCQv0Ut<~^VI5OMNvQS~6zWh>PjvA$(e-0{3QGb#8^bwe= zR;i{&D_084xHzp_CrO6Fco-f$prV3-1Br=g<*%tBDvHR+kOTo#RuUae@80$vY5rUR z8XH4@r~rOH>FFFj8X~P7%x?$-!rlnqArvGdtPbrsIC6vq3m7tl>(?nQ{Wm)9bnv00000NkvXXu0mjfn4#B% delta 1369 zcmV-f1*ZD53+xJzB!4qWL_t(|ob6a^NK{)C{*IKHjAcQ?==6Zgh^-nLrDMS&~)qm*du(xM4(a;boE8%vJ zS*>{g-pLqeB@70xSwlc9FP~)3Xd;pqE)WoFYFtgZdX)hIR4N^h{*s_=ZNDLuxA0)1lFzpg^L&d>OA_qqP;EoQC0@mvW&xG!MStTxDnae`1~0F(BIGKX!`gtH<#bPv$T|en4d3I1g(}yNs|5X zBYl0DmL^?lG~BewaUC%l85~T1f9B@$-aVc;L6Y0I^V27iY-^)j&d5k9SgmGererT# z#4A@M`+wCd0^+l0_V%GeoHK{*?NZpgcRX^$@iLq-+hLsCWMW|<0rBx;x|ZeOL8*pz zc5>f7HZ<7SK=Sx;0^+z!q2Pf7Bw1ZeK&+^+Meo{0L12A7Noq9QyxH**NhT+A;X+$= zFD>QDmAr97`m9|`KpYb#KcBU=Bx$vB)he4h&VK}LYooWf^dpfxc8niBI9`J@W@mzu zeDg*U)P*ekOHiYcDJksho5VKf=bbN;!D0b`swx0bDs4j%5qS8JH8ny|5a6;)%%2aL z%vRkE1_TBoG*r6O>j4O3r9C49-QCE~hag~h7-qAZgSm7mv|1DvA}b3r85$a(QaO&C zDu1(UjLR~H!9hesAR_|{7EB6rAm}(oM*+ZS#2D?nOoh6betN0IXh(_;{Q@kDE8KXOH8U z=`l|UIvwKTkeG=2dYjV=z~CSNSgn$)uMaN%LP!Vz$mM8h zL4QA*n;j&xSTHbP6M^5q1? z)2C@RGbe|DxMT^-%1F{=VthQKqF7waygVi+(`=TiZ*egNfh$(9q{P0=>-AJ92#9HE zY-*C6RaFcOBp?E!M#GK{$-jFyy??y8ZXJt@nU%%4bE(tu?OSRz1jOiQUcYX$C%zPh zhtpti+-F=c+hJlNy`DRE5D=rHc}&$!vSl251`z1Mx&8JH zjg1HjvVTJ`nc(XSA0M{_5=b;R!_N#Pq0wMs4N`H4X)ymH z1VEheB>x$Zf=4@a_Tc$*96gGV5HvQzVE7$7ZmO8Q|A#t+T#nIEeE9;sem1HJ;9s^w bXFvV~yc+9?)-lTE00000NkvXXu0mjf&L)dg diff --git a/collects/teachpack/2htdp/scribblings/img/2a03b18c0c.png b/collects/teachpack/2htdp/scribblings/img/2a03b18c0c.png new file mode 100644 index 0000000000000000000000000000000000000000..d69970974b28a7fa97f29b849e8715bd47724279 GIT binary patch literal 355 zcmV-p0i6DcP)mN`U##fNO`1oLjxEF2(j6}6eC~nH^ue+aGp_Bk2`7G(4|s0F2@mB_AJ3= zL0vzdPTwcSPK2fbK$s>JMFK4fOcMY?)1-gg_j}*TyHnR#7SCnmUS=7_@hWfU&~@RW zx9$C&;QXFc73MigZ`$6f*DE;w1CZDxPb`gi`Uh-e0E9u%-@pI>002ovPDHLkV1ha! Bog@GN literal 0 HcmV?d00001 diff --git a/collects/teachpack/2htdp/scribblings/img/8aebbc110e.png b/collects/teachpack/2htdp/scribblings/img/8aebbc110e.png new file mode 100644 index 0000000000000000000000000000000000000000..8da3e5e6572e7f46a4842724578441d7fefd27e6 GIT binary patch literal 359 zcmV-t0hs=YP)5745foqv(18um!(B)bMzr9J4M-@nKhRU~5Tkpuk?dQ2>plpQ zWi2>|G3iqP#-QskO?T(y`e2?R1d0NLfH8QVX!0J6fe=&`h5_rE)pZU^fl?51LhFRC z))A*|F^(x+@1Zs7I%03AYd9BmIG13SCHfxA66hMU4|NAABV8$PnN5S&>!ZtgPLvQ( zig`ZWzZi7^=O0~b_rH{Z5WB7rIa*P`+Q8pD`)GLlg5&kO?&EaZfO*G4yUv^`mFr;) z#^C)%)7)~DO6511o-JoupWCr4=zEmqV;qCMxTKv@NO=wKR^y1ajmTf?6X+h>SriZ= zG%Hc-ieW%i?Jj+-dwf3_1I~}EJl8a#>yp>g9{}=$`Uj5bEBb4~d{F=Z002ovPDHLk FV1jWLooN67 literal 0 HcmV?d00001 diff --git a/collects/teachpack/2htdp/scribblings/img/e58911226.png b/collects/teachpack/2htdp/scribblings/img/e58911226.png new file mode 100644 index 0000000000000000000000000000000000000000..2881e8c06a13258e873f87be7d1d7dc5e7dfe3b3 GIT binary patch literal 2005 zcmV;`2P*i9P)r002e^0ssI2oX?y5000M^NklXo9`&|N# zSYAd^5yr-NYVe1#F%%ZUX5*~`Abh@dZx4-)Fd9J!($a8v$VY}h93CPq4TQj8z=H?a z+2JWh^LV^o^!Fnn0fd~gqeE*Mfzi=%Mp|?<-n`-V`_VR@nHgkfpKbK7LCnnw{eFDZ>v8WMwzf2qq;fo?qew{+aeTs@9C*Fz>In?57dbh! zN~5Ci>J<(SR9B^1JT@B&3TW+~a9}_!Jz^LbkSsPi8Q;FCt4f7<91hgi!(fnXmk^lE z*xzR_Neuh@Fq`G*B?P&-n4ecm7}Iz>9`yDiE>5OVADfz3N}@wklOoAF9q!zL-OgSZ zyLhIiV6iB2>0@{}R#%y+qQL4Z!owK|kBGpF7jU^)YGV=4`Z~(X8TdP4NeKg0)F>%o zsXZ|fU%oJV#8DQH%Z1ifm`p7F`8YAb#-A7_CfI8y1eY#hc9wxW1@R0IBPmH0bA%v0 z9d0)Re}Ztkk)E!W1Dy`HZee3XkwRJVEG!^DUoBfF?CMhFi~?Owz$L&UUH)3KmGUQ`TjbuaA zsHxG^3L(hK!t}H>k#zA)OdumeYd3^IugAiIj7u+yg$3yK91IbH8#l1FMypdSp4C;9 zmh$o8V_u%ZB>W;TkEf^ba6EZ}y*+WAf#Y#H(cH{t!KRQyLkxofFf_#96CsF?$A=H_ zc%;VT^P{w5T2CM7Xki@RJZE(c^VGZR05(#JD5Ct+hu1$cv|^hrf1u8jV<9_QeCBv5~(bO2)-ucUNjQySqw{a5ZLQryB~tAFTWP`Rk&j!GNVD`fQe#WR|7yVt@as_}}q( zz5dH@(*Me=JL9W`cB0>X#!UG}(-d@K;JtoencIXY`-l)TylG zuaS}|DWX-H2L}>LRD*$)mFF#-jmK^mFNO{twzUbz)7HjcBRwM{{Zz_b*b;4T=dYBK z5fK8Ve|9?}BKT{hXM4LJ7Z>6Qt$&1yia_yHRPa|v&p?0G{?2!rG3PP2A}GN2L4*;85ei{c$7LG0KL8Z9Z=F}#PV`z zosAHJ-d>^0FBXr-6G~@TMMXtL{8iA?ViBpL5{n1G)D(XoG)zl_)jB?|V#fh=TC}I9k(H%& zJhiowbxLpj)uz2vuSZRds;$3XFFtmr&BAiYvN9&kZ_45I;`3)DCbBeFS}I?U+;~_`*|Jy^HdUzsmkZCIv#G;U zIQ~q*$fM?FMZ)9a(9@i?6_A4?4e)YZvo)8T^odF1BG z%*Je%KkUc{W%Jwy2PI1`D3H|t5hVEf70Jnxy$%j4{a$79NSZF3l0w;55S%zTz{{5s z+Si$keO5fIl4dq{L5xWKDM@S_pbQ3BvwPyS|it~xwG?(z=QLiIuNe*x@%r`o zsfwMQ%s!t{JSXoYG8)m)KsBoDFT&0a?%zKyN@x4BD0XAUtyUBj9ZyU6U&3ZXVIizm nmY=BuK>i_Eq312&AB6B9{=d2*_Og