CS 551/645: Introduction to Computer Graphics

Assignment #5

Goal: Understand and implement general viewing transformations

Assigned: Wednesday, October 13, 1999

Due: Friday, October 22, 1999

Relevant reading/files/software:

Synopsis: You will implement a library (libtransform.a) containing matrix routines for basic 3-D modeling and viewing operations: translation, scale, rotation about X, Y, Z, and an arbitrary axis, and a "look at" operation for setting camera pose.

Specifics: We are providing a header file transform.h defining function prototypes for the library; you will have to fill in the source code for those functions. We will also provide a file gfx.c with functions for rendering simple objects into an XForms glCanvas using a viewing matrix you specify, and a matrix library (matrix.h and matrix.c) with some handy functions which assume row-major matrices. (Makefile was last modified at 3:40PM on Oct 14. matrix.h and transform.h were last modified at 6:40PM on Oct 18. gfx.c last modified at 3:05PM on Oct 21. matrix.c was last modified at 9:20PM on Oct 19.) For debugging purposes, you may wish to modify your demo from Assignment 1 using the new functions. We also provide the usual Makefile. Note:

Grading: NOT the usual 10-point scale. Only correctness will be graded; speed will not be taken into account. Any completely correct assignment will thus get 10 points.