/* Name: Alex Cheung Class: Introduction to Media Computation Assignment: 1 Reference image(s) used: https://upload.wikimedia.org/wikipedia/commons/2/20/Window_Porto_Covo_August_2013-2.jpg Free grid at the bottom! */ // The following is displayed on play. void setup() { // Set the size of the canvas to 400px(width) x 400px(height). size(400, 400); // Fill the background with white. background(225, 232, 238); // Set the way rectangles are drawn to corner to corner. rectMode(CORNERS); } // Only using this for a minor creepyness factor. float r; float r2; float r3; // The following is displayed on each frame. void draw() { // Fill the background with white on each frame. background(225, 232, 238); // Interior fill(0); noStroke(); rect(100, 100, 300, 125); fill(25); rect(100, 125, 300, 150); fill(50); rect(100, 150, 300, 175); fill(75); rect(100, 175, 300, 200); fill(100); rect(100, 200, 300, 225); fill(125); rect(100, 225, 300, 250); fill(150); rect(100, 250, 300, 275); fill(175); rect(100, 275, 300, 300); // Draw Coffin stroke(158, 119, 88); strokeWeight(5); fill(159, 107, 71); quad(175, 125, 225, 125, 250, 175, 150, 175); quad(150, 175, 175, 300, 225, 300, 250, 175); fill(0); // Text colour text("Here lies...", 173, 175); // Draw Curtain noStroke(); // 1 fill(60, 81, 112); rect(100, 100, 105, 270-mouseY/4.4); fill(73, 98, 128); rect(105, 100, 110, 271-mouseY/4.3); fill(198, 214, 229); rect(110, 100, 115, 272-mouseY/4.2); fill(73, 98, 128); rect(115, 100, 120, 271-mouseY/4.1); fill(60, 81, 112); rect(120, 100, 125, 270-mouseY/4); // 2 fill(60, 81, 112); rect(125, 100, 130, 270-mouseY/3.9); fill(73, 98, 128); rect(130, 100, 135, 271-mouseY/3.8); fill(198, 214, 229); rect(135, 100, 140, 272-mouseY/3.7); fill(73, 98, 128); rect(140, 100, 145, 271-mouseY/3.6); fill(60, 81, 112); rect(145, 100, 150, 270-mouseY/3.5); // 3 fill(60, 81, 112); rect(150, 100, 155, 270-mouseY/3.4); fill(73, 98, 128); rect(155, 100, 160, 271-mouseY/3.3); fill(198, 214, 229); rect(160, 100, 165, 272-mouseY/3.2); fill(73, 98, 128); rect(165, 100, 170, 271-mouseY/3.1); fill(60, 81, 112); rect(170, 100, 175, 270-mouseY/3); // 4 fill(60, 81, 112); rect(175, 100, 180, 270-mouseY/2.9); fill(73, 98, 128); rect(180, 100, 185, 271-mouseY/2.8); fill(198, 214, 229); rect(185, 100, 190, 272-mouseY/2.7); fill(73, 98, 128); rect(190, 100, 195, 271-mouseY/2.6); fill(60, 81, 112); rect(195, 100, 200, 270-mouseY/2.5); // 5 fill(60, 81, 112); rect(200, 100, 205, 270-mouseY/2.5); fill(73, 98, 128); rect(205, 100, 210, 271-mouseY/2.6); fill(198, 214, 229); rect(210, 100, 215, 272-mouseY/2.7); fill(73, 98, 128); rect(215, 100, 220, 271-mouseY/2.8); fill(60, 81, 112); rect(220, 100, 225, 270-mouseY/2.9); // 6 fill(60, 81, 112); rect(225, 100, 230, 270-mouseY/3); fill(73, 98, 128); rect(230, 100, 235, 271-mouseY/3.1); fill(198, 214, 229); rect(235, 100, 240, 272-mouseY/3.2); fill(73, 98, 128); rect(240, 100, 245, 271-mouseY/3.3); fill(60, 81, 112); rect(245, 100, 250, 270-mouseY/3.4); // 7 fill(60, 81, 112); rect(250, 100, 255, 270-mouseY/3.5); fill(73, 98, 128); rect(255, 100, 260, 271-mouseY/3.6); fill(198, 214, 229); rect(260, 100, 265, 272-mouseY/3.7); fill(73, 98, 128); rect(265, 100, 270, 271-mouseY/3.8); fill(60, 81, 112); rect(270, 100, 275, 270-mouseY/3.9); // 8 fill(60, 81, 112); rect(275, 100, 280, 270-mouseY/4); fill(73, 98, 128); rect(280, 100, 285, 271-mouseY/4.1); fill(198, 214, 229); rect(285, 100, 290, 272-mouseY/4.2); fill(73, 98, 128); rect(290, 100, 295, 271-mouseY/4.3); fill(60, 81, 112); rect(295, 100, 300, 270-mouseY/4.4); // Draw LEFT openable window fill(94, 51, 42); rect(100, 100, 110, 300); rect(145-mouseX/8.88, 100, 155-mouseX/8.88, 300); rect(190-mouseX/4.44, 100, 200-mouseX/4.44, 300); // Top rect(100, 100, 110, 125); rect(110-mouseX/40, 100, 120-mouseX/40, 125); // 400/10=40 rect(120-mouseX/20, 100, 130-mouseX/20, 125); // 400/20=20 rect(130-mouseX/13.33, 100, 140-mouseX/13.33, 125); // 400/30=13.33 rect(140-mouseX/10, 100, 150-mouseX/10, 125); // 400/40=10 rect(150-mouseX/8, 100, 160-mouseX/8, 125); // 400/50=8 rect(160-mouseX/6.66, 100, 170-mouseX/6.66, 125); // 400/60=6.66 rect(170-mouseX/5.71, 100, 180-mouseX/5.71, 125); // 400/70=5.71 rect(180-mouseX/5, 100, 190-mouseX/5, 125); // 400/80=5 rect(190-mouseX/4.44, 100, 200-mouseX/4.44, 125); // 400/90=4.44 // Middle rect(100, 195, 110, 205); rect(110-mouseX/40, 195, 120-mouseX/40, 205); rect(120-mouseX/20, 195, 130-mouseX/20, 205); rect(130-mouseX/13.33, 195, 140-mouseX/13.33, 205); rect(140-mouseX/10, 195, 150-mouseX/10, 205); rect(150-mouseX/8, 195, 160-mouseX/8, 205); rect(160-mouseX/6.66, 195, 170-mouseX/6.66, 205); rect(170-mouseX/5.71, 195, 180-mouseX/5.71, 205); rect(180-mouseX/5, 195, 190-mouseX/5, 205); rect(190-mouseX/4.44, 195, 200-mouseX/4.44, 205); // Bottom rect(100, 275, 110, 300); rect(110-mouseX/40, 275, 120-mouseX/40, 300); rect(120-mouseX/20, 275, 130-mouseX/20, 300); rect(130-mouseX/13.33, 275, 140-mouseX/13.33, 300); rect(140-mouseX/10, 275, 150-mouseX/10, 300); rect(150-mouseX/8, 275, 160-mouseX/8, 300); rect(160-mouseX/6.66, 275, 170-mouseX/6.66, 300); rect(170-mouseX/5.71, 275, 180-mouseX/5.71, 300); rect(180-mouseX/5, 275, 190-mouseX/5, 300); rect(190-mouseX/4.44, 275, 200-mouseX/4.44, 300); // Draw RIGHT window fill(94, 51, 42); rect(200, 100, 210, 300); rect(245, 100, 255, 300); rect(290, 100, 300, 300); // Top rect(200, 100, 210, 125); rect(210, 100, 225, 125); rect(220, 100, 230, 125); rect(230, 100, 240, 125); rect(240, 100, 250, 125); rect(250, 100, 260, 125); rect(260, 100, 270, 125); rect(270, 100, 280, 125); rect(280, 100, 290, 125); rect(290, 100, 300, 125); // Middle rect(200, 195, 210, 205); rect(210, 195, 220, 205); rect(220, 195, 230, 205); rect(230, 195, 240, 205); rect(240, 195, 250, 205); rect(250, 195, 260, 205); rect(260, 195, 270, 205); rect(270, 195, 280, 205); rect(280, 195, 290, 205); rect(290, 195, 300, 205); // Bottom rect(200, 275, 210, 300); rect(210, 275, 220, 300); rect(220, 275, 230, 300); rect(230, 275, 240, 300); rect(240, 275, 250, 300); rect(250, 275, 260, 300); rect(260, 275, 270, 300); rect(270, 275, 280, 300); rect(280, 275, 290, 300); rect(290, 275, 300, 300); // Draw window outter frame. noStroke(); fill(64, 127, 207); rect(75, 75, 100, 325); rect(75, 75, 325, 100); rect(300, 75, 325, 325); rect(75, 300, 325, 325); // Draw shadow. noStroke(); fill(0, 90); quad(25, 100, 25, 300, 0, 325, 0, 125); quad(75, 300, 75, 325, 0, 325, 25, 300); quad(325, 325, 320, 330, 70, 330, 70, 325); quad(375, 300, 365, 315, 75, 315, 75, 300); // Draw window inner frame. noFill(); stroke(230, 226, 214); strokeWeight(10); rect(100, 100, 300, 300); // Fill the following shapes with brown. fill(94, 51, 42); // Set the stroke/outline colour to a darker brown. stroke(75, 31, 22); // Set the thickness of the outline to be more thick. strokeWeight(5); // Draw left shutter. rect(25, 100, 100, 300); // General shape // Flippy thing fill(80, 40, 30); rect(40, 120, 85, 140); rect(40, 140, 85, 160); rect(40, 160, 85, 180); rect(40, 180, 85, 200); rect(40, 200, 85, 220); rect(40, 220, 85, 240); rect(40, 240, 85, 260); rect(40, 260, 85, 280); // Fill the following shapes with brown. fill(94, 51, 42); // Set the stroke/outline colour to a darker brown. stroke(75, 31, 22); // Set the thickness of the outline to be more thick. strokeWeight(5); // Draw right shutter. rect(300, 100, 375, 300); // Flippy thing fill(80, 40, 30); rect(315, 120, 360, 140); rect(315, 140, 360, 160); rect(315, 160, 360, 180); rect(315, 180, 360, 200); rect(315, 200, 360, 220); rect(315, 220, 360, 240); rect(315, 240, 360, 260); rect(315, 260, 360, 280); /* // Grid, for determining placement stroke(0); // Black grid lines strokeWeight(1); // Grid line thickness fill(255, 0, 0); // Text colour // Verticle line(25, 0, 25, 400); line(50, 0, 50, 400); line(75, 0, 75, 400); line(100, 0, 100, 400); line(125, 0, 125, 400); line(150, 0, 150, 400); line(175, 0, 175, 400); line(200, 0, 200, 400); line(225, 0, 225, 400); line(250, 0, 250, 400); line(275, 0, 275, 400); line(300, 0, 300, 400); line(325, 0, 325, 400); line(350, 0, 350, 400); line(375, 0, 375, 400); text("25", 0, 25); text("50", 0, 50); text("75", 0, 75); text("100", 0, 100); text("125", 0, 125); text("150", 0, 150); text("175", 0, 175); text("200", 0, 200); text("225", 0, 225); text("250", 0, 250); text("275", 0, 275); text("300", 0, 300); text("325", 0, 325); text("350", 0, 350); text("375", 0, 375); // Horizontal line(0, 25, 400, 25); line(0, 50, 400, 50); line(0, 75, 400, 75); line(0, 100, 400, 100); line(0, 125, 400, 125); line(0, 150, 400, 150); line(0, 175, 400, 175); line(0, 200, 400, 200); line(0, 225, 400, 225); line(0, 250, 400, 250); line(0, 275, 400, 275); line(0, 300, 400, 300); line(0, 325, 400, 325); line(0, 350, 400, 350); line(0, 375, 400, 375); text("0", 1, 400); text("25", 26, 400); text("50", 51, 400); text("75", 76, 400); text("100", 101, 400); text("125", 126, 400); text("150", 151, 400); text("175", 176, 400); text("200", 201, 400); text("225", 226, 400); text("250", 251, 400); text("275", 276, 400); text("300", 301, 400); text("325", 326, 400); text("350", 351, 400); text("375", 376, 400); */ } void mouseMoved() { // Draw Ghost noStroke(); fill(255, 224); // Fill with white. ellipseMode(CENTER); // Set so that ellipses are drawn from the center of a set of coords, outwards. ellipse(200, 200, 75, 75); // "Head" // Body triangle(162.5, 200, 162.5, 275, 200, 200); triangle(175, 200, 187.5, 275, 200, 237.5); triangle(225, 200, 217.5, 275, 200, 237.5); triangle(237.5, 200, 237.5, 275, 200, 200); fill(255, 0, 0); // Fill eyes with red ellipse(185, 190, 20, 30); // Left eye ellipse(215, 190, 20, 30); // Right eye r = random(400); r2 = random(400); r3 = random(400); ellipse(r, r2, r3, r3+10); // Left eye ellipse(r+30, r2, r3, r3+10); // Right eye }