Programming Assignment 1


The purpose of this assignment is to help you "get your feet wet".
1 Background: As you should recall from lecture, one way to think about map projections involves placing a projection surface against the globe and rays from a light source, passing through points on the globe and the projection plane. In a stereographic projection, the rays originate from a pole. In an azimuthal projection, the projection surface is a plane.
2 Overview: For this assignment, you must write an application (in C/C++ using OpenGL) that displays a stereographic, azimuthal projection of the Earth.

Some groups will have the projection plane at the equator and others will have the projection plane at the pole(s). You will be told which when your group is formed. (Note: It is important to think about both cases, regardless of which one you must implement.)

3 Requirements: Your application must be able to display both the northern hemisphere and the southern hemisphere. The northern hemsiphere must be displayed when the application is passed 'n' as the command-line paramter and the southern hemsiphere must be displayed when the application is passed 's' as the command-line paramter. (Note: argv[0] will contain the name of the application and argv[1] will contain the command-line parameter of interest.)

The minimum and maximum coordinates of the window should be set to the minimum and maximum coordinates of the equator. [Note: If you use the SVA library created for this course, the minimum and maximum coordinates are set when you call svaCreate(). If you use "pure" OpenGL, they are set by a call to glOrtho().]

4 Deliverables: For this assignment:
  1. You must derive the equations for the stereographic, azimuthal projection and submit your derivation. If you are unable to complete the derivation you may find the answer in a reliable source (e.g., not Wikipedia) and complete the application, but you must submit your attempt at the derivation (and cite the source of the equations you used).
  2. You must submit "hardcopy" of your code.
  3. You must submit an electronic copy of your code on CD. It must include a "read me" file that explains how to build the application.

These deliverables must be submitted in a folder that is labeled with the names of all of the members of your group.

Copyright 2007