[MSOE Homepage]

Dr. Taylor's MSOE Homepage

Courses

Unix is a Four
Letter Word

My Photo Album

My Personal Homepage

CS-321 Main page

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:

  1. 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.)
  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.

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.