Use Bresenham's algorithm to draw lines with varying thickness and in solid vs. dashed format. Use the weighted-intensity anti-aliasing approach to draw anti-aliased lines. (Note,no need to vary the thickness or style for the anti-aliased lines.) A sample program and makefile are provided showing the grid 0 to 500 in x and y with the origin in the lower left corner. The only opengl calls to be used are glVertex3i and glColor3f to plot pixels and select their color (intensity), respectively. The project is to to modify the given program to include the functionality described above and the resulting program will perform as follows: 1) The compiled program run as "line" will use lines to plot the first four letters of your name. While letters like T and X are very easy, for letters like 'S' you will need to plot a number of line segments that form the shape of the 'S'. No curves required this assignment. You may use regular or anti-aliased lines for this step. 2) The compiled program run as "line filename" will read the data file called 'filename' accepting and drawing requests for different line segments until the end of the file. Each request will have the form "x1 y1 x2 y2 code" where code is either "0" for a line with weighted-intensity based anti-aliasing, "1" for a dashed line, and "2" thru "9" for differing thicknesses where the code specifies how thick the solid line segment should be in pixels (i.e. "4" means a line of thickness 4). Obviously, x1 y1 is the start of the line segment and x2 y2 is the end of the line segment. All values of x and y will be integers between 0 and 500 inclusive. One request for a line segment will be made per line of the file. 3) try to get rid of the gaps which appear when two lines cross , like an X. and incoroparate the X into the first part.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased.
## Platform
C++ which runs under Linux