|
|
|
|
Required Extensions
You must add the following features to the Impressionist program:
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
|