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? | |||||||||||||
|
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? | |||||||||||||
|
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? | |||||||||||||
|
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
| |||||||||||||||||||||||||||||||||||
viewport : viewport? | |||||||||||||||||||||||||||||||||||
p : posn? | |||||||||||||||||||||||||||||||||||
width : (and/c real? (not/c negative?)) | |||||||||||||||||||||||||||||||||||
height : (and/c real? (not/c negative?)) | |||||||||||||||||||||||||||||||||||
|
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?)) |
| |||||||||||||||||||||||||||||||||||
viewport : viewport? | |||||||||||||||||||||||||||||||||||
p : posn? | |||||||||||||||||||||||||||||||||||
width : (and/c real? (not/c negative?)) | |||||||||||||||||||||||||||||||||||
height : (and/c real? (not/c negative?)) | |||||||||||||||||||||||||||||||||||
|
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.
| ||||||||||||||||||||||||||||
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.
| ||||||||||||||||||||||||||||
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?)) | |||||||||||||
|
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?)) |
| |||||||||||||||||||||||||||||||||||
viewport : viewport? | |||||||||||||||||||||||||||||||||||
p : posn? | |||||||||||||||||||||||||||||||||||
width : (and/c real? (not/c negative?)) | |||||||||||||||||||||||||||||||||||
height : (and/c real? (not/c negative?)) | |||||||||||||||||||||||||||||||||||
|
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.
| ||||||||||||||||||||||||||||
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.
| ||||||||||||||||||||||||||||
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? | |||||||||||||
|
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? |
| ||||||||||||||||||||||||||||
viewport : viewport? | ||||||||||||||||||||||||||||
points : (listof posn?) | ||||||||||||||||||||||||||||
offset : posn? | ||||||||||||||||||||||||||||
|
Draws a solid polygon in viewport using points for
the polygon vertices and offset as an offset added to all
points.
| |||||||||||||||||||||
viewport : viewport? | |||||||||||||||||||||
points : (listof posn?) | |||||||||||||||||||||
offset : posn? |
Whitens a polygon border in viewport, analogous to
draw-solid-polygon.
| |||||||||||||||||||||
viewport : viewport? | |||||||||||||||||||||
points : (listof posn?) | |||||||||||||||||||||
offset : posn? |
4.7 Strings
((draw-string viewport) p str [color]) → void? | |||||||||||||
viewport : viewport? | |||||||||||||
p : posn? | |||||||||||||
str : string? | |||||||||||||
|
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
| |||||||||||||||||||||||||||||||||||
file : path-string? | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
viewport : viewport? | |||||||||||||||||||||||||||||||||||
p : posn? | |||||||||||||||||||||||||||||||||||
|
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? | |||||||||||||
|
((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.