AngleRaysCirc Documentation

The code presented in AngleRaysCirc.cpp is used to generate a postscript file with a drawing of a set of rays reflecting off a given set of circles. The input file contains the number of circles, the coordinates of their centers and their radii, the number of rays, the coordinates of the source of light, the start angle and the cone spread angle, in degrees. In order to shoot just one ray at a certain angle, one can input "1" for the number of rays, and use the start angle to direct the ray.

Input

- The number of circles one wishes to generate (int)
- Each circles xy coordinates and radius (long float)
- The xy coords of the light source (long float)
- The number of rays to be emitted by the light source (int)
- The angular spread (the angle by which each ray should be separated from the next, and the angle that is the maximum spread of all emitted light rays) (long float)
- The number times the light rays should bounce (int)

Executing the program

The Makefile:

#-----------------------------------------

AngleRaysCirc: AngleRaysCirc.o

g++ -o AngleRaysCirc AngleRaysCirc.o

AngleRaysCirc.o: AngleRaysCirc.cpp

g++ -c AngleRaysCirc.cpp

#-----------------------------------------

clean:

rm AngleRaysCirc.o AngleRaysCirc

#-----------------------------------------

To run:

% AngleRaysCirc < file.input > output.ps

Alternately, one does not have to run the program with an input file but it is necessary that an output postscript file be specified in order to view the saved image. Otherwise, the data is simply output to the screen and not saved.

There is also the option to run the program with debugging output. To do so:

% AngleRaysCirc [d] [D] < file.input > output.ps

Sample input file:

This input file will draw three circles in the shape of an equilateral triangle with five point gaps between each circle. A light source will be generated in the center of the triangle emitting five rays over a span of fifty degrees, each ray five degrees apart. For added clarity, the light ray source is encircled by blue.

Input file (file.input)

3

0 0 195

400 0 195

200 346 195

200 100

5

5 50

50