Difference between revisions of "Shannon.Coates"

From BioV
Jump to navigation Jump to search
Line 139: Line 139:
 
== Assignment #4 ==
 
== Assignment #4 ==
 
due November 12, 2008
 
due November 12, 2008
 +
 +
[http://www.sfu.ca/~stc9/FingerPaintProgramWidgets/applet/ '''FingerPaint v. 2.0''': ''A basic drawing tool - with widgets!'']

Revision as of 06:04, 7 November 2008

Assignment #1

exercises

due September 12th, 2008

A1-01: Draw three lines.

A1-02: Draw five lines.

A1-03: Draw three ellipses.

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-13: Move a visual element across the screen. When it disappears off the edge, move it back into the frame.

A1-14: Draw a visual element that moves in relation to the mouse, but with a different relation when the mouse is pressed.

A1-15: Using if and else, make the mouse perform different actions when in different parts of the window.

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-09: Move two visual elements across the screen using the random() function as a generator of movement. Give each element a unique nonlinear motion.

A2-10: Create an event that begins when the mouse is pressed and ends when the mouse is released.

A2-11: Create a responsive image that behaves differently when the mouse is moving and the mouse is dragging.

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

A2-14: Create a subclass of one of the asteroids classes that adds a new capability. Some examples of what you could do: create a subclass of Rocket (or ArmedRocket) that shoots flame when the thrusters are fired and/or plays a sound when thrusters are fired, create a subclass of Asteroid that know when it's been hit (instead of doing this test in loop()), create a subclass of Asteroid that splits into two smaller Asteroids when it's hit.

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.

Mobile Text: There is space for a word to be entered up to five characters long. Start typing to see the effect.


Assignment #4

due November 12, 2008

FingerPaint v. 2.0: A basic drawing tool - with widgets!