At the blackboard University of Washington Computer Science & Engineering
 Project 1: Impressionist
  CSE Home     CSE 457    Impressionist  About Us    Search    Contact Info 

Impressionist
 Project Description
 Getting Started
 Required Extensions
 Bells and Whistles
 Project Artifact
   

Required Extensions

You must add the following features to the Impressionist program:
  1. Implement 5 different brush types: single line, scattered lines, scattered points, (filled) circles, and scattered (filled) circles. See the sample solution for an example of each brush's appearance. Note that scattered brushes should sample from each location they color individually, not just use a single color for each splotch.

  2. Add sliders to control various brush attributes. You need to include sliders for the line thickness and brush angle, in addition to the existing brush size slider.


  3. Add the ability to control the brush direction. The stroke direction should be controlled four different ways: using a slider value, using the right mouse button to drag out a direction line, using the direction of the cursor movement, and using directions that are perpendicular to the gradient of the image. You can use a radio box to allow the user to select which method to use.


  4. Allow the user to change the opacity (alpha value) of the brush stroke. An alpha value slider should be added to the controls window. You may want to consult the blending subsection of the OpenGL Red Book for this.


  5. Implement the filter kernel. The skeleton code already provides the user interface. You should be able to specify any 5x5 filter by typing in the filter coefficients, a scale factor which multiplies each filter coefficient, and an offset which is added to the pixel before displaying. The filter is applied to the entire "Paintview" image (the image on the right panel). 
    Hint: You will need to implement a method for handling boundary pixels.
    Note: The filter kernel dialog is a modal dialog. You must first close the filter kernel dialog before you can continue painting on the "Paintview" canvas.


  6. Pick two whistles off the Bells and Whistles page and implement them. Note that two whistles = one bell. You are encouraged to complete as many additional bells and whistles as you want and they will be considered extra credit.
To see what these features should look like when they're done, you can look at the sample solution (with some of the extra credit) for XP here. Your implementations of brush strokes, brush direction controls, etc. do not have to behave exactly the same as the sample solution, but they should be fairly close.


If you are working in the graphics lab use this sample exe (.NET 2002).
If you are working in the CSE labs use this sample exe (.NET 2003). The cse lab computers are missing the MSVCR70.dll and the other sample does not run.


CSE logo Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to merlin]