Throughout the semester, we will have several labs. You are
required to save some of your files on your work-station's hard disk, a
floppy disk, or
on memory sticks for later use. If you do not save the images
resulting from a run, the programs themselves do not take up too much
disk space. So make sure to either save the files on a disk or
FTP to cs. Please use ASCII
mode when you FTP your C++ files, otherwise you will get a ^M
at the end of each line, which is pain in the neck to remove.
It is very important that you complete and run your programs on the hard disk (PC). Executable files take a good bit of disk space and cannot be run from the floppy. For this to work best, you may need to sit at the same machine every time we come to the lab. This way you can create a directory with the same name as your ID on the machine and keep it until the end of this semester.
1) Create a directory for yourself, best
is to call it YourID,
2) Create the lab1 directory for today's lab.
In order to run OpenGL programs, we will use Visual C++ compiler
which is installed on the PCs in the PC Lab (Room 439 or Ex-Term
Lab). To run the OpenGL programs, we also need to link some of
the OpenGL libraries in each program that we wish to run. During
this lab, we may run to some problems when we compile the
programs. These problems, will be resolved by including
appropriate files in the include or lib directories.
To make sure, we have the library files in place, here is what you need
to do before starting the lab.
First we need to install GLUT onto the computers. The files you will need are as follows:
To compile an OpenGL programs under .Net:
Use the Build tab, click on Compile, or while you are in the program do Ctrl-F7. If your program does not have any error, you will get:
Please note that it is extremely important that you copy the file under appropriate directory.
A Simple Example: Line
Lab Activity (1): Cut an paste the following program into the line.cpp file that you had saved in the previous step. Click on Save to save the changes.
The name of this screen is
Test. Make a change so it has your
name at the top.
gluOrtho2D(0.0, 50.0, 0.0, 50.0);maps world coordinates in the range [0,50] x [0,50] into this window, with (0,0) at the lower left. This is a parallel projection in which the z-coordinates are thrown away. The most significant block of code for the drawing purposes of this line is:
glBegin(GL_LINES);which draws a single line between the two given vertices. The "2f" in "glVertex2f"says that we specify points using two floating point parameters. The z-coordinate is assumed to be zero, thus we are working in the a 2D plane, x-y plane.
You can add other lines in the glBegin .. glEnd block; for example,
glBegin(GL_LINES);would draw a big "X". Note every line segment connects two vertices (points).
Lab Exercise (2): Change
the program such that it
displays a square of legnth (width) 100 units.
Post-lab - Due Jan 20
You are required to e-mail two separate programs (.cpp) for the following two parts of the postlab assignment. My e-mail address is firstname.lastname@example.org. Please at the Subject line indicate which part. Please make sure you have your name on all your programs. I deduct 10 points for each program without proper header.
Part (1) (30
Modify the above program so that it displays a house similar to the one shown below. Make your program such that if we decide to add another house we don't have to type many lines of code. Instead, by giving the location and size (width, height, etc...), it draws a house at the indicated location. Sent this program as an attachement. At the subject line put Part1-Post-Lab1.
Modify the above program further such that it displays a drawing similar to the one shown below. Sent this program as an attachement. At the subject line put Part2-Post-Lab1.
If there is any special instructions for running your program, please include it in the header of the program.