CS 4390 - Computer Graphics Programming Assignment #1 Screen Saver Due Oct. 9, 1998 Purpose: to become familiar with GLUT and OpenGL programming in the SGI lab Task: Write a C program using GLUT and OpenGL calls to do a simple "bouncing ball" screen saver. Specifically, your program should animate a circle moving across a black background, bouncing off the edges of the interface window. The color of the ball should change every time it bounces off one of the edges. Turn in: Your program should consist of a single file which should be commented with your name and any instructions needed for compiling and running your program. This should be emailed as ASCII text to cs4390@cc.gatech.edu. The time the mail is received will be used to determine whether or not the program is late, so be sure to allow a couple of minutes for the mail system to transmit your file if you are working right up to the deadline. If necessary to send multiple files, tar them and then uuencode the results before mailing. (Using MIME attachments to turn in files will make the grader crabby and result in much tougher program grading!) Due date: This program is due on or before Friday, October 9. This means it must be received by 11:59pm EDT on Friday to not be considered late. Additional Instructions: At a minimum, your program should create a window of at least 300x300 pixels with a black background, and animate a ball with a radius of at least 30 pixels bouncing off the edges, changing color with each bounce. Bounces should follow the normal laws of physics (the angle of incidence = the angle of reflection). The ball's speed should be such that it can easily be followed across the screen, but not so slow that it takes forever to see one bounce. It may be possible to receive extra credit by doing interesting things with the ball's velocity or size, but make sure that the basic program works before trying anything else. If you do implement extra features, make sure they are documented fully at the beginning of your program. Getting started: The GLUT libraries, documentation, and sample programs can be found in ~cs4390/GLUT. A sample Makefile and main program can be found in ~cs4390/sample.