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:
-
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).
-
You must submit "hardcopy" of your code.
-
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.