|
CS-321 Lab 7: 3D Graphics
Fall Quarter 1999
Electrical Engineering and Computer Science Department
Dr. Christopher C. Taylor
S-331, 277-7339

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 lab7a.dat (a cube) and
lab7b.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.
NOTE: This is a double credit lab!
Lab report (due 4pm, November 12, 1999)
The lab report need not be self-contained.
Your report should include:
- 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.
- Any questions you have regarding the lab
- Suggestions for how the lab could be improved in the future
- Documented source code (clearly
identifying any changes made since your last submission) Note: you
should include all the source code necessary to compile your project
except for unmodified source code written by Dr. Welch. For example, you
don't need to include shell.cpp if you didn't modify it.
You may wish to use gensrc, a shell script
which will produce one file containing all of your source code files
and Makefile with the markup commands required by my electronic
submission procedure.
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.
Program demostration (due 11am, November 17, 1999)
You will need to arrange a time to demonstrate your program to your
instructor.
If you have any questions, consult the instructor.
This page was created by Dr.
Christopher C. Taylor.
|