Patrick Lu Joshua Lund Vijay Ram
GUI Making the GUI, communicating with user Pat GUI Model Relations Keep the greater project design in mind at all times and keep it working and the design logical Vijay Model Processing expression. We started off with Josh’s Arithmetica and was therefore a fitting role for him Josh
Use Josh’s Arithmetica code Cleaner Parser class Greater ease to extend Treats parenthesis, comma better Creates “Grouper” objects Take parts from Pat and Vijay’s code Operator functionality / hierarchy Josh’s code design had more strengths than Pat and Vijay’s Therefore, we used it (it = Josh’s Arithmetica code)
Arithmetica is the basis for the model Read function input Parse input/ create expression object Tokens of Operator, Operand, Grouper Evaluate Expression at each pixel Action performed by View Evaluate method of expression returns RGB Color Easy to extend (see below) Add additional functions Functions are basis for all picture renderings
Certain input methods will not be accepted to simplify coding implementation Function separated by Return or newline characters Shown in Demo Grouper is classified separately from Operator Justified because Groupers are different from Operators Makes error-checking more tedious/ difficult
File Menu Open Save Buttons Random Evaluate Breed Text Fields Current Expression Enter Expression
File Menu Save Save Current image to file Load Load image from file, display image expression Buttons Random Display a random expression in the View Evaluate Evaluate a single expression inputted Breed Merge two expressions inputted in the left/right boxes
Current progress Shown during demonstration
Watch!!!!
Finish the project? Implement error checking Clean up Model-View Interaction Finish GUI Implement extensions
Allow users to view multiple images at once Separate windows, tabs, or a grid of thumbnails) Allow users to "debug" expressions Use mouse to display point and evaluated values Allow users to save a history of old expressions