CS 351: Assignment #5

Transformations and Viewing

Due midnight 20 October, 2011

In this assignment you'll implement a library of 2-D and 3-D transformations and then make use of them to build an object and a simple imaging pipeline.


Tasks

  1. The first part of the assignment is to build a matrix library as outlined in the system specification.

    To test the non-view parts of your library, you can run the lab05a.c test file. To help you debug, here is a listing of the output of the program when it is run with the command test5a 30 -60

  2. The second part of the assignment is to create a 2D view matrix function and demonstrate that it works using the test function test5b.c, with output test5b.txt.

  3. The third task is to create a 3D view matrix function and demonstrate it works using the test function test5c.c. The output of the program is here for a command line argument of 0.0 and here for a command line argument of 1.0.

  4. Make a 2D scene of your own. It does not need to be complex. Make a sequence of at least 10 images where your view both pans and zooms (in or out) across the scene. Create an animated gif from your scene.
  5. Make a 3D scene of your own. It does not need to be complex. Make a sequence of at least 10 images where your view moves relative to the scene. You do not need to adjust any parameters except the VRP (location) and VPN (orientation) of the view. Create an animated gif from your scene.

Extensions


Writeup

Make a child wiki page from your main CS 351 wiki page. Give it the label cs351f11project5. Please follow the format below.

  1. Abstract: 200 word description (at most) of what you did and a picture to go along with it.
  2. Description of the task, in your own words. Be brief, but write it as though explaining it to a fellow student not in the course.
  3. Description of how you solved the task, including any key equations or algorithms. You should also include algorithms or descriptions of what you did for any extensions. Include pictures here.
  4. More pictures. Please put a caption on each picture explaining something about it. If you have nothing else, give it a name and indicate whose picture it is.
  5. Summary of what you learned.

Handin

Put your code files in your private handin folder as a single zip or tar file. Put your writeup on the wiki. Give it the label cs351f11project5.