improved the docs a little, added a color? predicate
svn: r16747
|
@ -88,6 +88,7 @@ and they all have good sample contracts. (It is amazing what we can do with kids
|
||||||
mode?
|
mode?
|
||||||
angle?
|
angle?
|
||||||
side-count?
|
side-count?
|
||||||
|
color?
|
||||||
|
|
||||||
image-width
|
image-width
|
||||||
image-height
|
image-height
|
||||||
|
|
|
@ -246,6 +246,7 @@
|
||||||
(define (step-count? i)
|
(define (step-count? i)
|
||||||
(and (integer? i)
|
(and (integer? i)
|
||||||
(1 . <= . i)))
|
(1 . <= . i)))
|
||||||
|
(define (color? c) (or (symbol? c) (string? c)))
|
||||||
|
|
||||||
(define (bitmap->image bm [mask-bm (send bm get-loaded-mask)])
|
(define (bitmap->image bm [mask-bm (send bm get-loaded-mask)])
|
||||||
(let ([w (send bm get-width)]
|
(let ([w (send bm get-width)]
|
||||||
|
@ -911,6 +912,7 @@
|
||||||
mode?
|
mode?
|
||||||
angle?
|
angle?
|
||||||
side-count?
|
side-count?
|
||||||
|
color?
|
||||||
|
|
||||||
image-width
|
image-width
|
||||||
image-height
|
image-height
|
||||||
|
|
|
@ -116,46 +116,50 @@
|
||||||
"28c73238138.png")
|
"28c73238138.png")
|
||||||
(list
|
(list
|
||||||
'(overlay/xy
|
'(overlay/xy
|
||||||
(rectangle 10 10 "solid" "red")
|
(overlay/xy
|
||||||
-10
|
(ellipse 40 40 "outline" "black")
|
||||||
-10
|
10
|
||||||
(rectangle 10 10 "solid" "black"))
|
15
|
||||||
'image
|
(ellipse 10 10 "solid" "forestgreen"))
|
||||||
"1d4f067776.png")
|
20
|
||||||
(list
|
15
|
||||||
'(overlay/xy
|
|
||||||
(rectangle 10 10 "solid" "red")
|
|
||||||
10
|
|
||||||
10
|
|
||||||
(rectangle 10 10 "solid" "black"))
|
|
||||||
'image
|
|
||||||
"fecb6311a8.png")
|
|
||||||
(list
|
|
||||||
'(overlay/xy
|
|
||||||
(rectangle 10 10 "outline" "red")
|
|
||||||
10
|
|
||||||
0
|
|
||||||
(rectangle 10 10 "outline" "black"))
|
|
||||||
'image
|
|
||||||
"12795bb439c.png")
|
|
||||||
(list
|
|
||||||
'(overlay/xy
|
|
||||||
(ellipse 40 40 "outline" "black")
|
|
||||||
25
|
|
||||||
25
|
|
||||||
(ellipse 10 10 "solid" "forestgreen"))
|
(ellipse 10 10 "solid" "forestgreen"))
|
||||||
'image
|
'image
|
||||||
"255506ac6ca.png")
|
"10847861f4b.png")
|
||||||
|
(list
|
||||||
|
'(overlay/xy
|
||||||
|
(rectangle 20 20 "solid" "red")
|
||||||
|
-20
|
||||||
|
-20
|
||||||
|
(rectangle 20 20 "solid" "black"))
|
||||||
|
'image
|
||||||
|
"133309751d2.png")
|
||||||
|
(list
|
||||||
|
'(overlay/xy
|
||||||
|
(rectangle 20 20 "solid" "red")
|
||||||
|
20
|
||||||
|
20
|
||||||
|
(rectangle 20 20 "solid" "black"))
|
||||||
|
'image
|
||||||
|
"15717b87d30.png")
|
||||||
|
(list
|
||||||
|
'(overlay/xy
|
||||||
|
(rectangle 20 20 "outline" "black")
|
||||||
|
20
|
||||||
|
0
|
||||||
|
(rectangle 20 20 "outline" "black"))
|
||||||
|
'image
|
||||||
|
"1f0b671ed7b.png")
|
||||||
(list
|
(list
|
||||||
'(overlay/places
|
'(overlay/places
|
||||||
"right"
|
"right"
|
||||||
"bottom"
|
"bottom"
|
||||||
(rectangle 20 20 "solid" "red")
|
(rectangle 20 20 "solid" "silver")
|
||||||
(rectangle 30 30 "solid" "black")
|
(rectangle 30 30 "solid" "seagreen")
|
||||||
(rectangle 40 40 "solid" "red")
|
(rectangle 40 40 "solid" "silver")
|
||||||
(rectangle 50 50 "solid" "black"))
|
(rectangle 50 50 "solid" "seagreen"))
|
||||||
'image
|
'image
|
||||||
"1bc43bb84a.png")
|
"201133dd679.png")
|
||||||
(list
|
(list
|
||||||
'(overlay/places
|
'(overlay/places
|
||||||
"middle"
|
"middle"
|
||||||
|
@ -176,10 +180,10 @@
|
||||||
"26c4c403875.png")
|
"26c4c403875.png")
|
||||||
(list
|
(list
|
||||||
'(overlay
|
'(overlay
|
||||||
(ellipse 60 30 "solid" "purple")
|
(rectangle 30 60 "solid" "orange")
|
||||||
(rectangle 30 60 "solid" "orange"))
|
(ellipse 60 30 "solid" "purple"))
|
||||||
'image
|
'image
|
||||||
"2813b45d923.png")
|
"4e85791a5.png")
|
||||||
(list
|
(list
|
||||||
'(text/font "not really a link" 18 "blue" #f 'roman 'normal 'normal #t)
|
'(text/font "not really a link" 18 "blue" #f 'roman 'normal 'normal #t)
|
||||||
'image
|
'image
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#lang scribble/doc
|
#lang scribble/doc
|
||||||
|
|
||||||
@(require (for-label (except-in 2htdp/image image?)
|
@(require (for-label (only-in scheme/contract and/c or/c any/c not/c)
|
||||||
;lang/htdp-beginner;(only-in beginner-require)
|
2htdp/image
|
||||||
|
(except-in lang/htdp-beginner make-posn posn? posn-x posn-y image?)
|
||||||
lang/posn
|
lang/posn
|
||||||
scheme/gui/base)
|
scheme/gui/base)
|
||||||
lang/posn
|
lang/posn
|
||||||
|
@ -16,18 +17,14 @@
|
||||||
The image teachpack provides a number of basic image construction functions, along with
|
The image teachpack provides a number of basic image construction functions, along with
|
||||||
combinators for building more complex images out of existing images. Basic images include
|
combinators for building more complex images out of existing images. Basic images include
|
||||||
various polygons, ellipses and circles, and text, as well as bitmaps (typically bitmaps
|
various polygons, ellipses and circles, and text, as well as bitmaps (typically bitmaps
|
||||||
come about via the @onscreen{Insert Image...} menu item in DrScheme.
|
come about via the @onscreen{Insert Image...} menu item in DrScheme).
|
||||||
Existing images can be rotated, scaled, and overlaid on top of each other.
|
Existing images can be rotated, scaled, and overlaid on top of each other.
|
||||||
|
|
||||||
@emph{This library is currently a work in progress.
|
|
||||||
I don't expect the existing primitives to change, but more will be added
|
|
||||||
(and bugs will be fixed...).}
|
|
||||||
|
|
||||||
@section{Basic Images}
|
@section{Basic Images}
|
||||||
|
|
||||||
@defproc[(circle [radius (and/c real? (not/c negative?))]
|
@defproc[(circle [radius (and/c real? (not/c negative?))]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
Constructs a circle with the given radius, height, mode, and color.
|
Constructs a circle with the given radius, height, mode, and color.
|
||||||
|
|
||||||
|
@ -40,7 +37,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other.
|
||||||
@defproc[(ellipse [width (and/c real? (not/c negative?))]
|
@defproc[(ellipse [width (and/c real? (not/c negative?))]
|
||||||
[height (and/c real? (not/c negative?))]
|
[height (and/c real? (not/c negative?))]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)]) image?]{
|
[color color?]) image?]{
|
||||||
Constructs an ellipsis with the given width, height, mode, and color.
|
Constructs an ellipsis with the given width, height, mode, and color.
|
||||||
|
|
||||||
@image-examples[(ellipse 40 20 "outline" "black")
|
@image-examples[(ellipse 40 20 "outline" "black")
|
||||||
|
@ -50,7 +47,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other.
|
||||||
|
|
||||||
@defproc[(triangle [side-length (and/c real? (not/c negative?))]
|
@defproc[(triangle [side-length (and/c real? (not/c negative?))]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
Constructs a upward-pointing equilateral triangle.
|
Constructs a upward-pointing equilateral triangle.
|
||||||
The @scheme[side-length] argument
|
The @scheme[side-length] argument
|
||||||
|
@ -63,7 +60,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other.
|
||||||
@defproc[(right-triangle [side-length1 (and/c real? (not/c negative?))]
|
@defproc[(right-triangle [side-length1 (and/c real? (not/c negative?))]
|
||||||
[side-length2 (and/c real? (not/c negative?))]
|
[side-length2 (and/c real? (not/c negative?))]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
|
|
||||||
Constructs a triangle with a right angle where the two sides adjacent
|
Constructs a triangle with a right angle where the two sides adjacent
|
||||||
|
@ -75,7 +72,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other.
|
||||||
@defproc[(isosceles-triangle [side-length (and/c real? (not/c negative?))]
|
@defproc[(isosceles-triangle [side-length (and/c real? (not/c negative?))]
|
||||||
[angle angle?]
|
[angle angle?]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
|
|
||||||
Creates a triangle with two equal-length sides, of length @scheme[side-length]
|
Creates a triangle with two equal-length sides, of length @scheme[side-length]
|
||||||
|
@ -92,7 +89,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other.
|
||||||
|
|
||||||
@defproc[(square [side-length (and/c real? (not/c negative?))]
|
@defproc[(square [side-length (and/c real? (not/c negative?))]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
|
|
||||||
Constructs a square.
|
Constructs a square.
|
||||||
|
@ -102,7 +99,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?]{
|
@defproc[(rectangle [width real?] [height real?] [mode mode?] [color color?]) image?]{
|
||||||
Constructs a rectangle with the given width, height, mode, and color.
|
Constructs a rectangle with the given width, height, mode, and color.
|
||||||
@image-examples[(rectangle 40 20 "outline" "black")
|
@image-examples[(rectangle 40 20 "outline" "black")
|
||||||
(rectangle 20 40 "solid" "blue")]
|
(rectangle 20 40 "solid" "blue")]
|
||||||
|
@ -111,7 +108,7 @@ Existing images can be rotated, scaled, and overlaid on top of each other.
|
||||||
@defproc[(rhombus [side-length (and/c real? (not/c negative?))]
|
@defproc[(rhombus [side-length (and/c real? (not/c negative?))]
|
||||||
[angle angle?]
|
[angle angle?]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
|
|
||||||
Constructs a four sided polygon with all equal sides and thus where opposite angles are equal to each
|
Constructs a four sided polygon with all equal sides and thus where opposite angles are equal to each
|
||||||
|
@ -124,7 +121,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
@defproc[(regular-polygon [side-length (and/c real? (not/c negative?))]
|
@defproc[(regular-polygon [side-length (and/c real? (not/c negative?))]
|
||||||
[side-count side-count?]
|
[side-count side-count?]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
Constructs a regular polygon with @scheme[side-count] sides.
|
Constructs a regular polygon with @scheme[side-count] sides.
|
||||||
|
|
||||||
|
@ -135,7 +132,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
|
|
||||||
@defproc[(star [side-length (and/c real? (not/c negative?))]
|
@defproc[(star [side-length (and/c real? (not/c negative?))]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
Constructs a star with five points. The @scheme[side-length] argument
|
Constructs a star with five points. The @scheme[side-length] argument
|
||||||
determines the side length of the enclosing pentagon.
|
determines the side length of the enclosing pentagon.
|
||||||
|
@ -148,7 +145,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
[side-count side-count?]
|
[side-count side-count?]
|
||||||
[step-count step-count?]
|
[step-count step-count?]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
|
|
||||||
Constructs an arbitrary regular star polygon (a generalization of the regular polygons).
|
Constructs an arbitrary regular star polygon (a generalization of the regular polygons).
|
||||||
|
@ -167,7 +164,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
|
|
||||||
@defproc[(polygon [verticies (listof posn?)]
|
@defproc[(polygon [verticies (listof posn?)]
|
||||||
[mode mode?]
|
[mode mode?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
Constructs a polygon connecting the given verticies.
|
Constructs a polygon connecting the given verticies.
|
||||||
|
|
||||||
|
@ -187,7 +184,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
"solid" "plum")]
|
"solid" "plum")]
|
||||||
}
|
}
|
||||||
|
|
||||||
@defproc[(line [x1 real?] [y1 real?] [color (or/c symbol? string?)]) image?]{
|
@defproc[(line [x1 real?] [y1 real?] [color color?]) image?]{
|
||||||
Constructs an image representing a line segment that connects the points
|
Constructs an image representing a line segment that connects the points
|
||||||
(0,0) to (x1,y1).
|
(0,0) to (x1,y1).
|
||||||
|
|
||||||
|
@ -199,7 +196,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
@defproc[(add-line [image image?]
|
@defproc[(add-line [image image?]
|
||||||
[x1 real?] [y1 real?]
|
[x1 real?] [y1 real?]
|
||||||
[x2 real?] [y2 real?]
|
[x2 real?] [y2 real?]
|
||||||
[color (or/c symbol? string?)])
|
[color color?])
|
||||||
image?]{
|
image?]{
|
||||||
|
|
||||||
Adds a line to the image @scheme[image], starting from the point (@scheme[x1],@scheme[y1])
|
Adds a line to the image @scheme[image], starting from the point (@scheme[x1],@scheme[y1])
|
||||||
|
@ -215,7 +212,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
"darkolivegreen")]
|
"darkolivegreen")]
|
||||||
}
|
}
|
||||||
|
|
||||||
@defproc[(text [string string?] [font-size (and/c integer? (<=/c 1 255))] [color (or/c symbol? string?)])
|
@defproc[(text [string string?] [font-size (and/c integer? (<=/c 1 255))] [color color?])
|
||||||
image?]{
|
image?]{
|
||||||
|
|
||||||
Constructs an image that draws the given string, using the font size and color.
|
Constructs an image that draws the given string, using the font size and color.
|
||||||
|
@ -224,7 +221,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
(text "Goodbye" 36 "indigo")]
|
(text "Goodbye" 36 "indigo")]
|
||||||
}
|
}
|
||||||
|
|
||||||
@defproc[(text/font [string string?] [font-size (and/c integer? (<=/c 1 255))] [color (or/c symbol? string?)]
|
@defproc[(text/font [string string?] [font-size (and/c integer? (<=/c 1 255))] [color color?]
|
||||||
[face (or/c string? #f)]
|
[face (or/c string? #f)]
|
||||||
[family (or/c 'default 'decorative 'roman 'script 'swiss 'modern 'symbol 'system)]
|
[family (or/c 'default 'decorative 'roman 'script 'swiss 'modern 'symbol 'system)]
|
||||||
[style (or/c 'normal 'italic 'slant)]
|
[style (or/c 'normal 'italic 'slant)]
|
||||||
|
@ -258,8 +255,8 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
on top of the second argument, which goes on top of the third argument, etc.
|
on top of the second argument, which goes on top of the third argument, etc.
|
||||||
The images are all lined up on their upper-right corners
|
The images are all lined up on their upper-right corners
|
||||||
|
|
||||||
@image-examples[(overlay (ellipse 60 30 "solid" "purple")
|
@image-examples[(overlay (rectangle 30 60 "solid" "orange")
|
||||||
(rectangle 30 60 "solid" "orange"))
|
(ellipse 60 30 "solid" "purple"))
|
||||||
(overlay (ellipse 10 10 "solid" "red")
|
(overlay (ellipse 10 10 "solid" "red")
|
||||||
(ellipse 20 20 "solid" "black")
|
(ellipse 20 20 "solid" "black")
|
||||||
(ellipse 30 30 "solid" "red")
|
(ellipse 30 30 "solid" "red")
|
||||||
|
@ -279,10 +276,10 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
(rectangle 30 60 "solid" "orange")
|
(rectangle 30 60 "solid" "orange")
|
||||||
(ellipse 60 30 "solid" "purple"))
|
(ellipse 60 30 "solid" "purple"))
|
||||||
(overlay/places "right" "bottom"
|
(overlay/places "right" "bottom"
|
||||||
(rectangle 20 20 "solid" "red")
|
(rectangle 20 20 "solid" "silver")
|
||||||
(rectangle 30 30 "solid" "black")
|
(rectangle 30 30 "solid" "seagreen")
|
||||||
(rectangle 40 40 "solid" "red")
|
(rectangle 40 40 "solid" "silver")
|
||||||
(rectangle 50 50 "solid" "black"))]
|
(rectangle 50 50 "solid" "seagreen"))]
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -291,19 +288,23 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
|
||||||
Constructs an image by overlaying @scheme[i1] on top of @scheme[i2] after
|
Constructs an image by overlaying @scheme[i1] on top of @scheme[i2] after
|
||||||
shifting @scheme[i2] over by @scheme[x] pixels to the right and @scheme[y]
|
shifting @scheme[i2] over by @scheme[x] pixels to the right and @scheme[y]
|
||||||
pixels down.
|
pixels down.
|
||||||
@image-examples[(overlay/xy (ellipse 40 40 "outline" "black")
|
@image-examples[(overlay/xy (rectangle 20 20 "outline" "black")
|
||||||
25
|
20 0
|
||||||
25
|
(rectangle 20 20 "outline" "black"))
|
||||||
(ellipse 10 10 "solid" "forestgreen"))
|
(overlay/xy (rectangle 20 20 "solid" "red")
|
||||||
(overlay/xy (rectangle 10 10 "outline" "red")
|
20 20
|
||||||
10 0
|
(rectangle 20 20 "solid" "black"))
|
||||||
(rectangle 10 10 "outline" "black"))
|
(overlay/xy (rectangle 20 20 "solid" "red")
|
||||||
(overlay/xy (rectangle 10 10 "solid" "red")
|
-20 -20
|
||||||
10 10
|
(rectangle 20 20 "solid" "black"))
|
||||||
(rectangle 10 10 "solid" "black"))
|
(overlay/xy
|
||||||
(overlay/xy (rectangle 10 10 "solid" "red")
|
(overlay/xy (ellipse 40 40 "outline" "black")
|
||||||
-10 -10
|
10
|
||||||
(rectangle 10 10 "solid" "black"))]
|
15
|
||||||
|
(ellipse 10 10 "solid" "forestgreen"))
|
||||||
|
20
|
||||||
|
15
|
||||||
|
(ellipse 10 10 "solid" "forestgreen"))]
|
||||||
}
|
}
|
||||||
|
|
||||||
@defproc[(beside [i1 image?] [i2 image?] [is image?] ...) image?]{
|
@defproc[(beside [i1 image?] [i2 image?] [is image?] ...) image?]{
|
||||||
|
@ -483,6 +484,22 @@ This section lists predicates for the basic structures provided by the image lib
|
||||||
filled in or not.
|
filled in or not.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@defproc[(color? [x any/c]) boolean?]{
|
||||||
|
|
||||||
|
Determines if @scheme[x] represents a color. Both strings and symbols are allowed as colors.
|
||||||
|
For example,
|
||||||
|
@scheme["magenta"], @scheme["black"], @scheme['orange], and @scheme['purple]
|
||||||
|
are allowed. Colors are not case-sensitive, so
|
||||||
|
@scheme["Magenta"], @scheme["Black"], @scheme['Orange], and @scheme['Purple]
|
||||||
|
are also allowed, and are the same colors as in the previous sentence.
|
||||||
|
|
||||||
|
If a color is not recognized, black is used in its place.
|
||||||
|
|
||||||
|
The complete list of colors is available in the documentation for
|
||||||
|
@scheme[color-database<%>].
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@defproc[(y-place? [x any/c]) boolean?]{
|
@defproc[(y-place? [x any/c]) boolean?]{
|
||||||
Determines if @scheme[x] is a placement option
|
Determines if @scheme[x] is a placement option
|
||||||
for the vertical direction. It can be one
|
for the vertical direction. It can be one
|
||||||
|
|
BIN
collects/teachpack/2htdp/scribblings/img/10847861f4b.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1005 B After Width: | Height: | Size: 1007 B |
Before Width: | Height: | Size: 121 B |
BIN
collects/teachpack/2htdp/scribblings/img/133309751d2.png
Normal file
After Width: | Height: | Size: 159 B |
BIN
collects/teachpack/2htdp/scribblings/img/15717b87d30.png
Normal file
After Width: | Height: | Size: 161 B |
Before Width: | Height: | Size: 282 B |
Before Width: | Height: | Size: 142 B |
BIN
collects/teachpack/2htdp/scribblings/img/1f0b671ed7b.png
Normal file
After Width: | Height: | Size: 118 B |
BIN
collects/teachpack/2htdp/scribblings/img/201133dd679.png
Normal file
After Width: | Height: | Size: 316 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.1 KiB |
BIN
collects/teachpack/2htdp/scribblings/img/4e85791a5.png
Normal file
After Width: | Height: | Size: 764 B |
Before Width: | Height: | Size: 144 B |