On this page:
4.1 Viewports
draw-viewport
clear-viewport
flip-viewport
copy-viewport
4.2 Pixels
draw-pixel
clear-pixel
flip-pixel
4.3 Lines
draw-line
clear-line
flip-line
4.4 Rectangles
draw-rectangle
clear-rectangle
flip-rectangle
draw-solid-rectangle
clear-solid-rectangle
flip-solid-rectangle
4.5 Ellipses
draw-ellipse
clear-ellipse
flip-ellipse
draw-solid-ellipse
clear-solid-ellipse
flip-solid-ellipse
4.6 Polygons
draw-polygon
clear-polygon
flip-polygon
draw-solid-polygon
clear-solid-polygon
flip-solid-polygon
4.7 Strings
draw-string
clear-string
flip-string
4.8 Pixmaps
draw-pixmap-posn
draw-pixmap
save-pixmap
Version: 4.1.3.3

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?

Inverts the pixel in viewport at p.

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.

((flip-line viewport) p1 p2)  void?
  viewport : viewport?
  p1 : posn?
  p2 : posn?

Inverts 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?))

Inverts a rectangle border in the viewport, analogous to draw-rectangle.

((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?))

Inverts a rectangle border in the viewport, analogous to draw-solid-rectangle.

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?))

Inverts a ellipse border in the viewport, analogous to draw-ellipse.

((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?))

Inverts a ellipse border in the viewport, analogous to draw-solid-ellipse.

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?

Inverts a polygon border in viewport, analogous to draw-polygon.

((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?

Inverts a polygon border in viewport, analogous to draw-solid-polygon.

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?

Inverts a string at a specified location in the viewport. The lower left of the string begins at p.

4.8 Pixmaps

(((draw-pixmap-posn