CS638-2, Fall 1999

Homework 4 (Practice Program 3)

Last modified:

Due before class on Thursday, October 28th.

The purpose of this assignment is to give you practice with the basics of working with the OpenGL graphics library. You will need to use OpenGL for the next programming projects. The tasks that you are asked to do will be very useful in the next project, so you might think of this assignment as the beginning of project 2.

Note: we are asking you to use OpenGL to do 2D drawing. So, if you're ambitious and do 3D drawing, that won't qualify. Also, don't use fltk or other 2D drawing things. We really want you to use the 2D stuff in GL. (which is actually the same as the 3D stuff, but that's another story).

You must write a program that:

Note: unlike previous practice assignments, we are not giving you an example solution beforehand. However, the sample code and the GL Survival Kit should get you most of the way there. Figuring out how to convert from mouse coordinates to positions in your window will force you to think about the transformations that GL is performing.

As in the previous assignments, you are welcome to do more interesting programs. Make sure that you explain what your program does in the README file.

Handing things in:

Each student will get a handin directory. The handin directory will be ~cs638-2/handin/hw4/LOGIN (or p:\couse\cs638-gleicher\handin\hw4\LOGIN on NT) with your cs login in the place of LOGIN.

If you look in the handin\hw4 directory and don't see a directory for yourself, send email to Richard (yugu@cs.wisc.edu). Note: there will may be a delay between your request and when he can make the directory for you, so please ask before Tuesday.

Do not work in the handin directory. Copy your files there once the program is working. (there won't be enough disk space for everyone to put all of their working files in the handin directory).

You should only copy the following files into the directory:

In short, we need all the files necesary to build your program (and a readme file). We do not want the executable, the debugging information, the .obj files, ...

Also, you need to configure things so they will compile in the CS environment. If you build your programs at home or somewhere besides a CS machine, you will probably need to change your project settings.