|
CS-321 Lab 5: 3D Graphics
Summer Quarter 1999
Electrical Engineering and Computer Science Department
Dr. Christopher C. Taylor
S-331, 277-7339
t a y l o r@m s o e.e d u (remove spaces)
www.msoe.edu/~taylor/
Acknowledgment
This lab was originally developed by Dr. Henry L. Welch.
Purpose
The purpose of this laboratory assignment is to add the following
functionality to your graphics shell: 3D wireframes of polyhedral objects.
Assignment
As a minimum your package should do the following:
- Allow the specification of polyhedra using files or the command line.
The files lab5a.dat (a cube) and
lab5b.dat (a tetrahedron) contain examples
which specify a polyhedra as a set of edges. (i.e. There are two 3D
points per line. This is not the best long term specification,
but it is sufficient for the requirements of this assignment.)
- Place the origin of the world coordinate system in the center of the
drawing area.
- Position the observer at infinity and specify the direction of view
using a compass angle (with vertical up on the screen initially
defining north) and an angular displacement from vertical with 0
degrees being straight down. This in effect defines a spherical
coordinate system. (i.e. angle from z and angle around z in the xy
plane.) This leaves the view-up direction somewhat ambiguous. Assume
it starts aligned with due north and rotates with the spherical
angles.
- Allow this position to be changed using the command line or other
mechanism while your program runs.
There are numerous areas for extra-credit in this assignment.
NOTE: This is a double credit lab!
Lab report (due 5pm, July 15, 1999)
The lab report should be self-contained. That is, it should be possible
for someone to understand what you did and why without seeing anything other
than your report. Your report should include:
- Purpose
- Problem Statement
- Procedure -- what approach you used to solve the problem
- Documented source code (clearly
identifying any changes made since your last submission)
- Discussion including:
- A tally of the number of new Non-commented Lines Of
Code (NLOC) written for this lab assignment. You may use the
CLC
perl script on your code. If possible, break the NLOC down
into the various features you needed to implement.
- A summary of your activity log indicating how much time you spent
on each phase of the assignment.
- A narrative describing any specific problems you encountered and how
you solved them.
- Conclusions (what you learned, suggestions of how the lab could be
improved, things you would have done differently, etc.)
As with any report you submit, correct spelling and grammar are
required. In addition, your report should be submitted electronically
following the Electronic Submission
Guidelines. (You may wish to consult the
sample report before submitting your
report.) Be sure to keep copies of all your files, in case something
gets lost. It may be wise to keep a diskette backup as well.
If you have any questions, consult the instructor.
This page was created by Dr.
Christopher C. Taylor.
|