yosemite
let yPerl = 0.0;
function setup() {
createCanvas(400, 300);
pinkSky = color(252, 224, 217);
blueSky = color(190, 228, 235);
mountainColor = color(46, 130, 129);
treeColor = color(162, 179, 137);
sunColor = color(255, 181, 181);
}
function draw() {
background(0);
//the sky
let changeSky = map(mouseY, 0, height, 0, 1);
var skyColor = lerpColor(pinkSky, blueSky, changeSky);
fill(skyColor);
rect(0, 0, width, height/1.5);
//the sun
noStroke();
ellipseMode(CENTER);
fill(sunColor);
var stopMouseX = constrain(mouseX, 100, 300);
var stopMouseY = constrain(mouseY, 0, 300);
let sunX = map(stopMouseX, 0, width, 0, 400);
let sunY = map(stopMouseY, 0, height, 0, 300);
ellipse(sunX, sunY, 90, 90);
//generative mountains
fill(mountainColor);
beginShape();
let xPerl = 0;
for (let x = 0; x<= width; x += 10) {
let y = map(noise(xPerl), 0, 1, 200, 50);
vertex(x, y);
xPerl += 0.2;
}
yPerl += 0.2;
vertex(width, height);
vertex(0, height);
endShape(CLOSE);
//trees
push();
for (var i = 0; i <= 400; i += 1) {
stroke(treeColor);
strokeWeight(0.5);
line(50, i + 50, i, height); //1st tree from the left
line(100, i + 20, i + 50, height + 25); //2nd tree
line(150, i + 70, i + 70, height + 50); //3rd tree
line(225, i + 80, i + 200, height + 50); //4th tree
line(width/2, i + 125, i + 150, height); //5th tree
line(300, i + 60, i + 250, 300); //6th tree
line(350, i + 100, i + 300, 350); //7th tree
line(400, i + 100, i + 350, 400); //8th tree on far right
}
pop();
}
I was loosely inspired by the sunrises and sunsets at Yosemite National Park. The mountains regenerate randomly every time the page is reloaded.