On-Line Computer Graphics Notes

Frames


Overview

In computer graphics we manipulate objects which may include light sources, cameras, and models in our scenes. Each of these is likely to be defined in its own coordinate system and then placed within the scene we are modeling. We must be able to relate these coordinate systems, both to a global coordinate system and to each other. We place coordinate systems into an affine space through the use of frames.

For a postscript version of these notes look here.


Definition of a Frame

Let tex2html_wrap_inline148 be an affine space of dimension n. Let tex2html_wrap_inline152 be a point in this space and let tex2html_wrap_inline154 be any basis for tex2html_wrap_inline156. We call the collection tex2html_wrap_inline158 a frame for tex2html_wrap_inline160. Frames form coordinate systems in our affine space: If we are given a point tex2html_wrap_inline162, then it can be written as tex2html_wrap_inline164, where tex2html_wrap_inline166 is the origin of the frame and tex2html_wrap_inline168 is a vector. Since tex2html_wrap_inline170 forms a basis for tex2html_wrap_inline172, the vector tex2html_wrap_inline174 can be written uniquely as
displaymath40
and so the point tex2html_wrap_inline176 can be written uniquely as
displaymath42
The set of values tex2html_wrap_inline178 are the coordinates of tex2html_wrap_inline180 relative to the frame tex2html_wrap_inline182.


Examples of Frames  

Two-dimensional examples of frames are fairly straightforward to produce. These frames contain two vectors and a point representing the origin of the frame. The vectors form a basis for the vector space of all two-dimensional vectors.


Matrix representation of Points and Vectors

Points and vectors can be uniquely identified by the coordinates relative to a specific frame. Given a frame tex2html_wrap_inline226 in an affine space tex2html_wrap_inline228, we can write a point tex2html_wrap_inline230 uniquely as
displaymath61
This can also be written in matrix notation as
displaymath63
Similarly, since the vectors of our affine space form a vector space, we can write a vector tex2html_wrap_inline232 uniquely as
displaymath73
which can be written as
displaymath75
Thus, points are represented as row vectors whose last component is 1 and vectors are represented as row vectors whose last component is 0 (zero).


References

1
DEROSE, T. Coordinate-free geometric programming. Technical Report 89-09-16, Department of Computer Science and Engineering, University of Washington, Seattle, Washington, 1994.


This document maintained by Ken Joy

Comments to the Author

All contents copyright (c) 1996, 1997
Computer Science Department,
University of California, Davis
All rights reserved.



Ken Joy
Fri May 2 14:38:29 PDT 1997