Computer Graphics (CS 4300) 2010S: Assignment 3
DUE: 12pm, Thu Feb 25
Worth: 20% of your final grade
Goals
- to implement, document, and test an interactive two-dimensional graphics program of your choosing
- to implement picking and manipulation of on-screen graphical objects
- to use graphics transformations such as translation, scaling, and rotation
- to implement at least one moderately advanced graphics feature, such as image loading and display or Bézier curves
- to implement basic graphical user interface (GUI) functions such as menus, toolbars, and dialog boxes
Assignment
For this homework you are to implement, test, and document your own two-dimensional graphics project. You will have approximately three weeks after you turn in your functional specification to implement and test your code, and to turn your functional spec into an end-user manual. After you hand your project in, you will make a short presentation of it to the class.
For HW2 and HW3, you may work alone or in a pair of two students. See details in HW2.
At a minimum, your project should include
- picking and manipulation (moving around) of on-screen graphical objects
- graphics transformations such as translation, scaling, and rotation
- basic graphical user interface (GUI) functions, such as menus, toolbars, and dialog boxes
- at least one moderately advanced feature, such as
- image loading and display
- Bézier curves
- cut and paste
- “snapping”
- boolean operations on graphical objects.
If you have a different idea about what you would like to implement as a “moderately advanced feature”, check with the course staff.
Your project should be a stand-alone application. While you are free to use libraries and programming languages of your choosing, we ask that you do not implement an “add-on” or “plug-in” for another existing application. If you think you have a really good idea to do so, contact the course staff and we may make an exception.
Turn In
Turn in
- all sourcecode for your project
- instructions for compiling your code (if necessary)
- compiled executables (if necessary) that meet the requirements listed on the platforms page
- a user manual for your project, which can be an updated and complete version of your functional spec
- a README.txt file as instructed on the assignments page.
Follow the instructions on the assignments page for packing up your project and submitting it.
Grading
Out of 100 total possible points
- 30 will be assigned based on the organization, functionality, clarity, and documentation of your code (other than the user manual)
- 30 will be assigned based on the graphic output of your program
- 30 will be assigned based on the interactive features, such as picking and manipulation, that you have implemented
- 10 will be assigned based on the quality and completeness of your user manual.
If working in a pair, see details in HW2 regarding project scope.
Note that the functional spec (HW2) and the in-class presentation of your project will be graded separately from HW3.