Next: Drawing Graphics, Previous: Opening and Closing of Graphics Devices, Up: Graphics [Contents][Index]

Each graphics device has two different coordinate systems associated
with it: *device coordinates* and *virtual coordinates*. Device
coordinates are generally defined by low-level characteristics of the
device itself, and often cannot be changed. Most device coordinate
systems are defined in terms of pixels, and usually the upper-left-hand
corner is the origin of the coordinate system, with `x` coordinates
increasing to the right and `y` coordinates increasing downwards.

In contrast, virtual coordinates are more flexible in the units employed, the position of the origin, and even the direction in which the coordinates increase. A virtual coordinate system is defined by assigning coordinates to the edges of a device. Because these edge coordinates are arbitrary real numbers, any Cartesian coordinate system can be defined.

All graphics procedures that use coordinates are defined on virtual coordinates. For example, to draw a line at a particular place on a device, the virtual coordinates for the endpoints of that line are given.

When a graphics device is initialized, its virtual coordinate system is
reset so that the left edge corresponds to an x-coordinate of `-1`

,
the right edge to x-coordinate `1`

, the bottom edge to y-coordinate
`-1`

, and the top edge to y-coordinate `1`

.

- procedure:
**graphics-device-coordinate-limits***graphics-device* Returns (as multiple values) the device coordinate limits for

`graphics-device`. The values, which are exact non-negative integers, are:`x-left`,`y-bottom`,`x-right`, and`y-top`.

- procedure:
**graphics-coordinate-limits***graphics-device* Returns (as multiple values) the virtual coordinate limits for

`graphics-device`. The values, which are real numbers, are:`x-left`,`y-bottom`,`x-right`, and`y-top`.

- procedure:
**graphics-set-coordinate-limits***graphics-device x-left y-bottom x-right y-top* Changes the virtual coordinate limits of

`graphics-device`to the given arguments.`X-left`,`y-bottom`,`x-right`, and`y-top`must be real numbers. Subsequent calls to`graphics-coordinate-limits`

will return the new limits. This operation has no effect on the device’s displayed contents.Note: This operation usually resets the clip rectangle, although it is not guaranteed to do so. If a clip rectangle is in effect when this procedure is called, it is necessary to redefine the clip rectangle afterwards.