Due: 17 November
10 points
Extend the code from project 3 to handle the representation of 3D objects and 3D transformations. Implement the viewing transformation for the three-dimensional case. Implement perspective projection. Implement the screen transformation (i.e., the window to viewport transformation for the 3D case). Demonstrate that your program works for a simple three-dimensional polygon, such as a cube.
Hint: When storing edges in the surface table, list them in clockwise order as if you were viewing the surface from outside the object.
Hint: Model objects so their center is at the origin of the world coordinate system.
Hint: Set the viewing transformations so you're looking down the positive z axis of the eye coordinate system (e.g., phi = 0.0, theta = 0.0, rho = 10.0, D = 5.0).
Feel free to use the programming language of your choice. Hand in a disk with your source and executable by the start of class on the due date.