Handed out: Jan. 23, 2008
Due: 11:30am, Jan. 30, 2008
You will write a program that draws lines and circles using the
bresenham algorithms.
You may not use OpenGL line / circle drawing command but must use the drawPoint
subroutine from the example program for the first assignment.
1. You program should compile and run on the CADE
2. You should read an input file (file name is the first parameter).
For example: lab2.exe line_file
The input file has the format:
LINE X0 Y0 X1 Y1 r1 g1 b1 r2 g2 b2
CIRCLE X0 Y0 R r g b
Where all parameters are floats except for the strings: LINE and CIRCLE.
For example: (white line, gray circle, red line)
LINE 0.0 0.0 10.2 12.4 1.0 1.0 1.0 1.0 1.0 1.0
CIRCLE 5.0 4.5 2.6 0.75 0.75 0.75
LINE 0.0 20.0 20.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0
There may be multiple lines and circles in the input file
3. Extra credit if you interpolate the color along the line.
The program should draw its output to an OpenGL window of size 512x512 as in the example program.
use the handin routine in the CADE Lab. You can with zip or tar your solution. You should comment your code appropriately and hand in a web-page that will serve as complete documentation. Please include a paragraph of difficulties and a paragraph of what you learned in this assignment.
The handin name for this lab is "lab2".
Windows users should use the Zip utility and handin a single zipped file. Unix users should use the tar program to do the same. We will recompile the programs to grade them. Make sure your workspace/program will compile for us. That is, be careful about your user-specific pathname variables! If you do this on a home machine, please allow sufficient time for porting to the CADE machines. We will grade based on compiling and running on the CADE machines.
Due to a bug in the handin program, do not include spaces in the names of the files that you submit, otherwise we will not receive them. For instance, "no spaces.txt" is not a valid filename and would not be received, while "no_spaces.txt" is valid. Please keep this in mind while handing in your assignment.