/*Rosy Forest by Jessica Olesky Move your mouse to change the time of day, and watch as the shadows change size */ void setup() { //set up canvas size(400, 400); } void draw() { //set up background background(215, 228, 247); //set sun with glow noStroke(); fill(255, 250, 180); ellipseMode(CENTER); ellipse(200, mouseY, 60, 60); fill(232, 195, 107, mouseY/2); ellipse(200, mouseY, 400, 400); rectMode(CORNERS); //mountain #2 fill(109, 164, 166); triangle(270, 100, 290, 140, 220, 170); triangle(270, 100, 220, 170, 250, 100); triangle(250, 100, 230, 110, 220, 170); triangle(230, 110, 219, 119, 220, 170); triangle(219, 119, 210, 118, 220, 170); triangle(210, 118, 220, 170, 200, 120); triangle(160, 160, 200, 120, 220, 170); //mountain #1 fill(38, 104, 105); triangle(380, 140, 370, 120, 306, 150); triangle(370, 120, 360, 100, 306, 150); triangle(360, 100, 350, 80, 306, 150); triangle(350, 80, 340, 60, 306, 150); triangle(340, 60, 330, 63, 306, 150); triangle(330, 63, 320, 67, 306, 150); triangle(320, 67, 300, 50, 306, 150); triangle(300, 50, 294, 53, 306, 150); triangle(294, 53, 280, 72, 306, 150); triangle(280, 72, 262, 100, 306, 150); triangle(262, 100, 243, 140, 306, 150); triangle(243, 140, 230, 170, 306, 150); //mountain top fill(240); triangle(294, 53, 300, 70, 269, 90); triangle(300, 50, 294, 53, 300, 70); triangle(300, 50, 300, 70, 310, 60); triangle(310, 60, 300, 70, 340, 90); triangle(320, 67, 340, 60, 340, 90); //hill #5 TREES fill(0); triangle(20, 140, 23, 140, 20, 130); triangle(30, 140, 33, 140, 32, 130); triangle(35, 135, 40, 135, 37, 160); triangle(44, 140, 46, 140, 45, 124); //hill #5 TREES brush fill(45, 85, 102); triangle(33, 135, 42, 135, 37, 120); fill(195, 113, 119); ellipse(20, 128, 8, 8); fill(104, 28, 34); ellipse(24, 126, 3, 3); fill(86, 21, 33); ellipse(32, 130, 6, 6); fill(232, 178, 179); ellipse(30, 132, 3, 3); fill(232, 178, 179); ellipse(45, 124, 9, 9); //hill #5 fill(224, 238, 156); triangle(0, 140, 0, 400, 80, 135); triangle(80, 135, 0, 400, 160, 150); triangle(160, 150, 0, 400, 220, 170); //hill #5 TREE shadows fill(0, 100); quad(20, 138, 23, 138, 3, 143+mouseY/30, 3, 143+mouseY/30); quad(30, 138, 33, 138, 9, 145+mouseY/30, 9, 145+mouseY/30); quad(35, 138, 40, 138, 17, 145+mouseY/30, 17, 145+mouseY/30); quad(44, 136, 47, 136, 23, 145+mouseY/30, 23, 145+mouseY/30); //mountain #2 shadow fill(0, 150); quad(169, 151, 220, 170, 230, 210+mouseY/30, 180, 160+mouseY/30); //hill #4 TREES fill(50, 35, 25); triangle(180, 172, 185, 172, 183, 152); fill(78, 54, 31); triangle(205, 170, 210, 170, 207, 146); triangle(215, 170, 220, 170, 218, 147); //hill #4 TREES brush fill(86, 21, 33); ellipse(183, 150, 17, 17); fill(133, 38, 50); ellipse(189, 155, 8, 8); fill(155, 73, 92); ellipse(178, 157, 7, 7); fill(137, 68, 84); ellipse(207, 140, 22, 22); fill(195, 113, 119); ellipse(197, 138, 10, 10); fill(232, 178, 179); ellipse(198, 141, 7, 7); fill(133, 38, 50); ellipse(218, 147, 15, 15); fill(155, 73, 92); ellipse(224, 150, 6, 6); //hill #4 fill(200, 222, 100); triangle(400, 400, 340, 140, 400, 140); triangle(400, 400, 340, 140, 280, 150); triangle(400, 400, 280, 150, 200, 170); triangle(40, 180, 400, 400, 200, 170); //hill #4 Tree shadow fill(0, 100); quad(180, 170, 185, 170, 186, 185+mouseY/25, 173, 185+mouseY/25); quad(205, 168, 210, 166, 216, 189+mouseY/25, 199, 189+mouseY/25); quad(215, 165, 220, 164, 228, 185+mouseY/25, 218, 185+mouseY/25); //mountain shadow fill(57, 65, 30, 240); quad(235, 160, 380, 140, 380, 180+mouseY/30, 370, 185+mouseY/30); quad(320, 143, 380, 140, 390, 160+mouseY/30, 390, 160+mouseY/30); triangle(246, 158, 290, 145, 290, 160); triangle(380, 140, 320, 137, 320, 145); //hill #3 TREES fill(50, 35, 25); triangle(65, 177, 68, 177, 68, 140); triangle(68, 164, 68, 168, 57, 155); triangle(73, 169, 80, 169, 75, 220); triangle(99, 185, 102, 185, 102, 150); triangle(117, 187, 123, 189, 122, 132); triangle(122, 166, 122, 163, 140, 150); //hill #3 TREES brush fill(45, 85, 102); triangle(69, 169, 86, 169, 75, 120); fill(155, 73, 92); ellipse(70, 140, 35, 35); fill(115, 33, 43); ellipse(57, 155, 15, 15); fill(86, 21, 33); ellipse(78, 124, 12, 12); ellipse(103, 157, 20, 20); fill(195, 113, 119); ellipse(93, 155, 7, 7); fill(232, 178, 179); ellipse(122, 132, 40, 40); fill(133, 38, 50); ellipse(140, 150, 20, 20); fill(137, 68, 84); ellipse(141, 141, 12, 12); //hill #3 fill(166, 192, 60); triangle(0, 180, 0, 300, 200, 400); triangle(0, 180, 40, 175, 200, 400); triangle(100, 180, 40, 175, 200, 400); triangle(100, 180, 140, 190, 200, 400); triangle(140, 190, 190, 210, 200, 400); triangle(220, 220, 190, 210, 200, 400); triangle(220, 220, 240, 220, 200, 400); triangle(240, 220, 280, 215, 200, 400); triangle(280, 215, 360, 220, 200, 400); triangle(360, 220, 200, 400, 400, 220); //hill #3 TREE shadows fill(0, 100); quad(65, 177, 68, 177, 40, 200+mouseY/30, 30, 200+mouseY/30); quad(73, 177, 80, 177, 65, 190+mouseY/30, 55, 190+mouseY/30); quad(99, 180, 102, 182, 94, 190+mouseY/30, 84, 190+mouseY/30); quad(117, 185, 123, 186, 119, 200+mouseY/30, 100, 200+mouseY/30); //hill #2 TREES fill(78, 54, 31); rectMode(CENTER); triangle(260, 235, 260, 285, 253, 285); triangle(260, 250, 260, 255, 238, 236); fill(50, 35, 25); triangle(310, 260, 320, 260, 315, 190); triangle(315, 225, 318, 230, 333, 203); fill(35, 30, 15); rect(293, 270, 12, 20); //hill #2 TREES ellipseMode(CENTER); fill(137, 68, 84); ellipse(260, 213, 60, 60); fill(195, 113, 119); ellipse(238, 236, 30, 30); fill(232, 178, 179); ellipse(233, 215, 20, 20); fill(86, 21, 33); ellipse(331, 150, 45, 45); fill(104, 28, 34); ellipse(311, 175, 75, 75); fill(133, 38, 50); ellipse(347, 200, 40, 40); fill(145, 53, 49); ellipse(333, 203, 30, 30); //hill #2 fill(131, 155, 41); triangle(400, 215, 400, 400, 380, 220); triangle(380, 220, 340, 240, 400, 400); triangle(340, 240, 310, 260, 400, 400); triangle(310, 260, 290, 270, 400, 400); triangle(290, 270, 260, 280, 400, 400); triangle(260, 280, 400, 400, 220, 290); triangle(170, 310, 220, 290, 400, 400); //shadows fill(0, 100); quad(299, 265, 287, 270, 310, 300+mouseY/25, 350, 300+mouseY/25); quad(254, 280, 260, 280, 278, 290+mouseY/25, 262, 290+mouseY/25); quad(315, 257, 320, 250, 390, 290+mouseY/25, 360, 290+mouseY/25); //brush #3 fill(45, 85, 102); triangle(268, 260, 316, 260, 290, 180); //hill #1 fill(76, 102, 19); rectMode(CORNERS); rect(0, 390, 400, 400); triangle(0, 290, 40, 285, 0, 400); triangle(40, 285, 80, 280, 0, 400); triangle(80, 280, 120, 280, 0, 400); triangle(120, 280, 160, 285, 0, 400); triangle(160, 285, 190, 300, 0, 400); triangle(190, 300, 240, 320, 0, 400); triangle(300, 340, 240, 320, 0, 400); triangle(300, 340, 340, 360, 0, 400); triangle(400, 390, 340, 360, 0, 400); //set background to darken fill(0, mouseY/1.7); rect(0, 0, width, height); //PERSONAL NOTES //quad keep two points fixed on the object and the other points can move freely // building rect(40,60,80,250) // shadow quad(40,250,80,250,80,250+mouseY/2,40,250+mouse+/2) //fill(0 (colour), 150 (alpha)) //new shadow (quad (40,250,80,250,140-mouseX,250+mouseY/2,100-mouseX,250+mouse+/2 //apply treansparency to entire screen //fill(0,mouseY/2 (<- divided by two)) //rect(0,0,displayWidth,displayHeight) }