VIZA 654 / CSCE 646 : Digital Image
Fall 2020

Project 03: Complex Vector to Raster Conversion First Review: Sep. 28
Submissions Due: Oct. 05
 

Problem Description:

The goal of this project is to learn more complex shapes in vector to raster conversion and antializing. You will also learn how to desribe images using operations on mathematical functions. There will be three tasks: convex polygon, star polygon, and a parametric line. The first two will be created using antialiasing.


Summary of minimum requirements:

Your program(s) should create at least one convex, one star shape, one blobby shape and one shaded shape. In addition, create a height field image defined by a function in the form of y=f(x). You can choose any color and any shape. We also want to see close-up images that demonstrate that the antialising is working. Example images are shown below.

Your program can create approximate set operations with blobby shapes and we can give you bonus credit for additional work. Put your resulting images to your website. Do not use any high level operation such as ``draw a polygon''. For the required parts of the project, implement your operations only using the basic programming operations such as while or for loops and basic mathematical operations such as addition, subtraction, multiplication, division and power. Convex and start shapes will be obtained by set operation over half-planes. Your program should be able provide all possible half-planes in 2D. Note that the form "y=mx+n" does not provide all possible half-planes. "ax+by+c=0" can provide but you will not know about your line just by looking at parameters. If you use any of these two forms, your project will be returned back to be corrected. Use either the form "cos theta (x-x0) + sin theta (y-y0)" or n dot (p-p0) where n=(cos theta, sin theta). The boundary of these half-spaces will be perpendicular of n and pass through from the point p0=(x0,y0).


Project Submission:

Please write the program in either Processing or Java or C or C++. For C and C++ use OpenGL and GLUTgraphics routines for the display. Upload your program and all essential files to webassign as a "as small as possible" zip directory. In your program, include comments about the program and your name. Also make sure to provide information that and instructions on how to run it.