4 Draw, Clear, and Flip Operations
The following are the basic graphics operations for drawing to a viewport. Each function takes a viewport as its argument and returns a function operating within that viewport. Further arguments, if any, are curried. For example, (draw-line viewport) returns a function, that can then be applied to the proper arguments to draw a line in the viewport corresponding to viewport descriptor viewport.
In general, draw- functions make pixels black or colored, clear- functions make them white, and flip- commands invert pixels (which makes black white, white black, and is otherwise ill-defined).
4.1 Viewports
((draw-viewport viewport) [color]) → void? viewport : viewport?
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Colors the entire contents of viewport with color.
((clear-viewport viewport)) → void? viewport : viewport?
Whitens the entire contents of viewport.
((flip-viewport viewport)) → void? viewport : viewport?
Inverts the entire contents of viewport.
(copy-viewport source dest) → void? source : viewport? dest : viewport?
Copies the content of source into dest.
4.2 Pixels
((draw-pixel viewport) p [color]) → void? viewport : viewport? p : posn?
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Colors the pixel in viewport at p.
((clear-pixel viewport) p) → void? viewport : viewport? p : posn?
Whitens the pixel in viewport at p.
((flip-pixel viewport) p) → void? viewport : viewport? p : posn?
4.3 Lines
((draw-line viewport) p1 p2 [color]) → void? viewport : viewport? p1 : posn? p2 : posn?
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a line in viewport connecting positions p1 and
p2.
((clear-line viewport) p1 p2) → void? viewport : viewport? p1 : posn? p2 : posn?
Whitens a line in viewport connecting positions p1
and p2.
4.4 Rectangles
((draw-rectangle viewport) p width height [ color]) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a rectangle border in the viewport with the top-left of
the rectangle at the position p and with sides width
across and height tall.
((clear-rectangle viewport) p width height) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
Whitens a rectangle border in the viewport, analogous to
draw-rectangle.
((flip-rectangle viewport) p width height) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
((draw-solid-rectangle viewport) p width height [ color]) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a solid rectangle in the viewport with the top-left of
the rectangle at the position p and with sides width
across and height tall.
((clear-solid-rectangle viewport) p width height) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
Whitens a rectangle border in the viewport, analogous to
draw-solid-rectangle.
((flip-solid-rectangle viewport) p width height) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
4.5 Ellipses
((draw-ellipse viewport) p width height [color]) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a ellipse border in the viewport. The ellipse is
inscribed with a rectangle whose top-left is at position p
and with sides width across and height tall.
((clear-ellipse viewport) p width height) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
Whitens a ellipse border in the viewport, analogous to
draw-ellipse.
((flip-ellipse viewport) p width height) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
((draw-solid-ellipse viewport) p width height [ color]) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a solid ellipse in the viewport. The ellipse is
inscribed with a rectangle whose top-left is at position p
and with sides width across and height tall.
((clear-solid-ellipse viewport) p width height) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
Whitens a ellipse border in the viewport, analogous to
draw-solid-ellipse.
((flip-solid-ellipse viewport) p width height) → void? viewport : viewport? p : posn? width : (and/c real? (not/c negative?)) height : (and/c real? (not/c negative?))
4.6 Polygons
((draw-polygon viewport) points offset [color]) → void? viewport : viewport? points : (listof posn?) offset : posn?
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a polygon border in viewport using points for
the polygon vertices and offset as an offset added to all
points.
((clear-polygon viewport) points offset) → void? viewport : viewport? points : (listof posn?) offset : posn?
Whitens a polygon border in viewport, analogous to
draw-polygon.
((flip-polygon viewport) points offset) → void? viewport : viewport? points : (listof posn?) offset : posn?
((draw-solid-polygon viewport) points offset [ color]) → void? viewport : viewport? points : (listof posn?) offset : posn?
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a solid polygon in viewport using points for
the polygon vertices and offset as an offset added to all
points.
((clear-solid-polygon viewport) points offset) → void? viewport : viewport? points : (listof posn?) offset : posn?
Whitens a polygon border in viewport, analogous to
draw-solid-polygon.
((flip-solid-polygon viewport) points offset) → void? viewport : viewport? points : (listof posn?) offset : posn?
4.7 Strings
((draw-string viewport) p str [color]) → void? viewport : viewport? p : posn? str : string?
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a string at a specified location in the viewport.
The lower left of the string begins at p.
((clear-string viewport) p str) → void? viewport : viewport? p : posn? str : string?
Whitens a string at a specified location in the viewport.
The lower left of the string begins at p.
((flip-string viewport) p str) → void? viewport : viewport? p : posn? str : string?
4.8 Pixmaps
(((draw-pixmap-posn file [ type])) viewport) p [ color]) → void? file : path-string?
type :
(one-of/c 'unknown 'unknown/mask 'gif 'gif/mask 'jpeg 'png 'png/mask 'xbm 'xpm 'bmp) = 'unknown/mask viewport : viewport? p : posn?
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
Draws a pixmap into viewport with its upper left corner at
position p. If type is 'unknown or
'unknown/mask, then the content of the file is examined to
determine the type. The
'gif/mask, 'png/mask, and 'unknown/mask
types draw the bitmap with a transparent background if
filename refers to a GIF/PNG file with a transparent
background.
The argument color is only used when the loaded pixmap is monochrome. In that case, the color is used instead of black in the drawn image.
((draw-pixmap viewport) file p [color]) → void? viewport : viewport? file : path-string? p : posn?
color :
(or/c (integer-in 0 299) string? rgb?) = "black"
((save-pixmap viewport) file [type]) → void? viewport : viewport? file : path-string? type : (one-of/c 'gif 'jpeg 'png 'xbm 'xpm 'bmp) = 'xpm
Saves the current content of viewport to file.
The type argument determines the kind of file that is written.