[MSOE Homepage]

Dr. Taylor's MSOE Homepage

Unix is a Four
Letter Word

My Photo Album

My Personal Homepage

CS-321 Main page

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:

  1. 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.)
  2. Place the origin of the world coordinate system in the center of the drawing area.
  3. 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.
  4. 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.