Page 93 Table of Contents Index Page 95
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E


12.2 Definitions

Drawing plane. A drawing plane is an infinite two-dimensional plane on which graphical
output occurs. The drawing plane contains an arrangement of colors and opacities that is
modified by each graphical output operation. It is not possible to read back the contents of
a drawing plane, except by examining the output-history. Normally each window has its own
drawing plane.

Coordinates. Coordinates are a pair of real numbers in implementation-defined units that
identify a point in the drawing plane.

Sheets and Mediums. In this chapter, we use a sheet as a destination for output. Associated
with a sheet is a medium, which has a drawing plane, two designs called the medium's foreground
and background, a transformation, a clipping region, a line style, and a text style. There are per-
medium, dynamically scoped, default drawing options. Different medium classes are provided to
allow programmers to draw on different sorts of devices, such as displays, printers, and virtual
devices such as bitmaps.

Note that a stream is a special kind of sheet that implements the stream protocol; streams
include additional state such as the current text cursor (which is some point in the drawing
plane). While the functions defined here are specified to be called on sheets, they can also be
called on streams and mediums.

By default, the "fundamental" coordinate system of a CLIM stream (not a general sheet or
medium, whose fundamental coordinate system is not defined) is a left handed system with x
increasing to the right, and y increasing downward. (0;0) is at the upper left corner.

12.3 Drawing is Approximate

Note that although the drawing plane contains an infinite number of mathematical points, and
drawing can be described as an infinite number of color and opacity computations, the drawing
plane cannot be viewed directly and has no material existence. It is only an abstraction. What
can be viewed directly is the result of rendering portions of the drawing plane onto a medium.
No infinite computations or objects of infinite size are required to implement CLIM, because the
results of rendering have finite size and finite resolution.

A drawing plane is described as having infinitely fine spatial, color, and opacity resolution, and
as allowing coordinates of unbounded positive or negative magnitude. A viewport into a drawing
plane, on the other hand, views only a finite region (usually rectangular) of the drawing plane.
Furthermore, a viewport has limited spatial resolution and can only produce a limited number
of colors. These limitations are imposed by the display hardware on which the viewport is
displayed. A viewport also has limited opacity resolution, determined by the finite arithmetic
used in the drawing engine (which may be hardware or software or both).

Page 93 Table of Contents Index Page 95
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E