Shannon.Coates
Contents
Assignment #1
exercises
due September 12th, 2008
A1-04: Control the position of two lines with one variable.
A1-05: Control the position and size of two lines with two variables.
A1-06: Control the properties of two shapes with two variables.
A1-07: Create a simple, regular pattern with six lines.
A1-08: Program your pattern from Assignment 1-07 using while().
A1-09: Draw a layered form with two new loops.
A1-10: Redo Assignment 1-05 using mouseX and mouseY as the variables.
A1-11: Draw two visual elements that each move in relation to the mouse in a different way.
A1-12: Draw two visual elements that each move in relation to the mouse in a different way.
A1-16: Develop a kinetic image which responds to the mouse. (NOTE: Left-click on the burger.)
Comments
The last one is hilarious, it definitely made my day. (ah)
Project #1
non-traditional clock
due September 22, 2008
Student Time: Display the progress of time in a non-traditional way.
Assignment #2
exercises
due October 6, 2008
A2-01: Using beginShape() and endShape(), create a composition with five or more vertices.
A2-02: Using beginShape() and endShape(), create a composition with ten or more vertices.
A2-03: Create an image different from A2-02, but using the same vertex data.
A2-04: Write a function with one parameter and demonstrate it visually.
A2-05: Write a function for drawing triangles and visually demonstrate its flexibility.
A2-06: Write a function with three or more parameters and visually demonstrate its flexibility.
A2-07: Create a dynamic animation using the cos() function as a generator for motion.
A2-08: Create a dynamic animation using the cos() and sin() function as a generator for motion.
A2-10: Create an event that begins when the mouse is pressed and ends when the mouse is released.
A2-12: Create a button that changes the color of the background when it is clicked.
A2-13: Program your moving elements from A2-09 but use classes to represent the two visual elements.
due October 8, 2008
Shannon's Notes on the Extended Program (A2-14):
What was once the exhilarating arcade experience "Asteroids!" has been transformed into the mildly-diverting edu-tainment odyssey... "Scientific Asteroid Sampling!"
The functionality I have added to the original program (aside from gratuitously changing variable names) is to give the rocket (now dubbed a research vessel) the ability to launch a drone that can then move independently of the vessel.
The drone is launched when the ENTER key is hit, and continues to move forward when the ENTER key is held down.
In order to change the trajectory of the drone, the <- and -> keys are used. Essentially, the drone travels in the same direction that the nose of the research vessel is pointing.
Please note that it is not necessary for the vessel to be in motion for the drone to travel.
Project #2
proposal
due October 8, 2008
THE PROJECT DESCRIPTION:
The contemporary computer scene is dominated by the graphical user interface (GUI). For almost every task, from manipulating text, imagery, sound, video, to configuring a computer's operating system (e.g. control panels), from searching for and organizing information (e.g. the web), to the process of programming (e.g. integrated development environments), there are special purpose GUI tools supporting the task through analogies to embodied interaction with physical objects. But no tool is neutral; every tool bears the marks of the historical process of its creation, literally encoding the biases and viewpoints of its creators, offering affordances for some interactions while making other interactions difficult or impossible to perform or even conceive. While the ability to program does not bring absolute freedom (you can never step outside of culture, and of course programming languages are themselves tools embedded in culture), it does open up a region of free play, allowing the artist to encode his/her own biases and viewpoint. What graphical tools would you create?
Create your own drawing tool, emphasizing algorithmic generation/modification/manipulation.
Explore the balance of control between the tool and the person using the tool. The tool should do something different when moving vs. dragging (moving with the mouse button down).
The code for your tool should use at least one class.
PROPOSAL:
I plan to create a basic drawing tool, which offers several drawing functions similar to those found in such bare-bones programs as Microsoft Paint.
In my vastly simpler program, I will first create a drawing area or canvas where the images drawn will be contained. I plan to create a border around the drawing surface and set bounds so that it will be impossible to draw outside the canvas area.
I will create a 'brush' tool that allows the user to draw on the canvas, offering multiple brush 'heads' to allow for a different kinds of strokes to be produced when the brush tool is used. The different options for brushes will be displayed as buttons on a panel beside the canvas so that the user can move between them.
'Brush' will be the class that I will create in this program, extended by subclasses representing the different kinds of brushes.
I also plan to create a palette where the user can select the colour of the 'ink' that is applied by the brush when it is used. The different inks will be represented by buttons so that the user can move between them easily.
I intend to have an 'erase all' button available that will clear the canvas of all additions and wipe it clean, as well as an 'eraser' tool that will erase portions of the canvas in strokes.
application
due October 20, 2008
FingerPaint: Create a draw tool.
Assignment #3
due October 27, 2008
Mosaic: Press and hold the left and right mouse buttons to get different block size views.
Assignment #4
due November 12, 2008