CS 110 (Introduction to Computing)

Spring 2016

Assignment #2

Due by 2:25 pm on Thursday, February 11, 2016

Task: Design an interactive sketch depicting the horizon. The top half of the sketch will represent the sky and the bottom half the ground. The exact y-coordinate of the horizon should be a variable in your code.  Color the top and bottom of your sketch appropriately. The (variable) horizontal line through the middle of the sketch is the horizon line at which all objects appear to vanish.

As the user clicks on the sketch draw one of two types of objects. If the click occurs on the sky (above the horizon), draw clouds or something else that belongs in the sky. If the click is on the ground (below the horizon), draw flowers or something else that belongs on the ground. The size of clouds and flowers should shrink as the mouse click position approaches the horizon line. 

Use the following structure for your program.


// Header comments
// Declare variables

void setup() {
  // Set up the drawing.
  // Draw the sky and the ground background
}

void draw() { /* remains empty */ }

void mousePressed() {
  // Use the mouse position to decide whether drawing on sky or on ground
  // Compute scale factor and call appropriate drawing function.
}

// You may rename this function, depending on what you choose as your sky object
void drawCloud(int x, int y, float scale) {
  // Draw a cloud at the given coordinates using scale factor.
}

// You may rename this function, depending on what you choose as your ground object
void drawFlower(int x, int y, float scale) {
  // Draw a flower at the given coordinates using scale factor.
}

Requirements:

What to produce:

  1. The program
  2. A write-up with your name, course and assignment number and a paragraph about the sketch, its inspiration, and how you designed and implemented it. Include a brief discussion about your experience working on this assignment.
  3. A gif/jpg/png image showing off your sketch, after you have placed demonstrative sky and ground objects where you would like them (use the save() function coupled with keyPressed()).

What to Hand in:

  1. Submit a hard copy of 1, 2 and 3. This hard copy is due at the start of class on the due date.
  2. Submit an electronic copy including the entire sketch folder, the screenshot and the writeup via Dropbox shared folder as usual.

Carefully read the Assignment Submission Policy for how to submit your assignment.