/*Eunice Choe
Section E
ejchoe@andrew.cmu.edu
Project-03*/
var sunD = 70;
var skyR = 65;
var skyG = 82;
var skyB = 97;
var cloudD = 100;
// heat waves
var diam = 50;
var dir = 1;
var speed = 2;
// ferris wheel
var ferrisDiam = 350;
var ferrisCarDiam = 50;
// ferris wheel base
var baseDiam = 100;
function setup() {
createCanvas(480, 600);
}
function draw() {
// background changing from dark to light - changing color
background(skyR, skyG, skyB);
skyR = map(mouseY, 0, height, 187, 65);
skyG = map(mouseY, 0, height, 222, 82);
skyB = map(mouseY, 0, height, 255, 97);
// sun & cloud moving with mouse - changing position
noStroke();
fill(247, 225, 136);
var m = constrain(mouseY, 380, 0);
var q = constrain(mouseY, 150, 0);
ellipse(m, constrain(mouseY, 100, height), sunD, sunD);
fill(255, 255, 255);
ellipse(q, constrain(mouseY, 150, height), cloudD, cloudD);
ellipse(q + 50, constrain(mouseY, 150, height), cloudD * .85 , cloudD * .85);
ellipse(q - 60, constrain(mouseY, 150, height), cloudD * .5 , cloudD * .5);
// heat waves from sun - changing size
if (mouseY < 100){
push();
stroke(255);
noFill();
ellipse(380, 100, diam, diam);
ellipse(380, 100, diam*1.5, diam*1.5);
ellipse(380, 100, diam*2, diam*2);
pop();
diam += dir * speed;
if (diam > 300){
diam = 0;
}
}
// ground
noStroke();
fill(177, 177, 177);
rect(0, 400, width, height);
// ferris wheel base
push();
fill(183, 103, 44);
ellipse(width / 2, height / 2, baseDiam, baseDiam);
strokeWeight(20);
stroke(183, 103, 44);
line(width / 2, height / 2, 380, 550);
line(width / 2, height / 2, 100, 550);
pop();
// ferris wheel
push();
stroke(183, 103, 44);
strokeWeight(10);
noFill();
ellipse(width / 2, height / 2, ferrisDiam, ferrisDiam);
pop();
// ferris wheel spokes
push();
translate(width / 2, height / 2);
stroke(183, 103, 44);
strokeWeight(3);
rotate(millis() / mouseX / 6);
line(ferrisDiam / 2, 0, 0, 0);
line(-ferrisDiam / 2, 0, 0, 0);
line(0, ferrisDiam / 2, 0, 0);
line(0, -ferrisDiam / 2, 0, 0);
pop();
// ferris wheel cars
push();
fill(202, 87, 87);
translate(width / 2, height / 2);
rotate(millis() / mouseX / 6); // changing speed depending on mouseX position
ellipse(ferrisDiam / 2, 0, ferrisCarDiam, ferrisCarDiam);
fill(93, 87, 202);
ellipse(-ferrisDiam / 2, 0, ferrisCarDiam, ferrisCarDiam);
fill(189, 118, 222);
ellipse(0, ferrisDiam / 2, ferrisCarDiam, ferrisCarDiam);
fill(87, 202, 101);
ellipse(0, -ferrisDiam / 2, ferrisCarDiam, ferrisCarDiam);
pop();
}
This project was really difficult for me, but I had fun experimenting with different variables. I wanted to incorporate movement with a spinning circle so I created a moving ferris wheel. I also chose to show contrast with the day/night theme and the varying speeds of the ferris wheel.