/* Tianyao Liu * Interactive Drawing: Animated Pokemon Jirachi * Intro to Media Computation * * Jirachi will look at your cursor as long as it isn't too close to the bottom, in which case it will start doing some trippy magic */ void setup() { size(800, 800); frameRate(30); //for animation rectMode(CENTER); } void draw() { colorMode(HSB, 360, 100, 100, 100); //HSB is much easier to use for the colour and lighting effects used in this drawing //background background(217, 100, 33, 100); //dark blue //excluding background, every part's coordinates have position formulas //horizontal parallax movement relative to mouseX: {+/-}(mouseX-400)/{reciprocal of parallax factor} //vertical parallax movement relative to mouseY: {+/-}(mouseY-400)/{reciprocal of parallax factor} //breathing movement for both x and y positions (period = (2*PI)/(PI/30) = 2*30 = 60; one breathing cycle every 60 frames, or 2 seconds): {+/-}{movement factor}*sin(PI/30*frameCount) //similarly, this formula is used very often for other purposes such as rotation or pulsing animations, sometimes with modifications: {+/-}{factor}*sin(PI/{period/2}*frameCount) //some instances of mouseX/mouseY will be replaced with pmouseX/pmouseY for a "trailing" effect //star glow; translucent circles behind the stars that pulse continuously noStroke(); fill(192, 50, 100, 50+25*sin(PI/30*frameCount-PI)); //blue with varying opacity ellipse(20-(mouseX-400)/10, 300-(mouseY-400)/20, 60+6*sin(PI/30*frameCount), 60+6*sin(PI/30*frameCount)); ellipse(120-(mouseX-400)/10, 80-(mouseY-400)/20, 60+6*sin(PI/30*frameCount), 60+6*sin(PI/30*frameCount)); ellipse(560-(mouseX-400)/10, 660-(mouseY-400)/20, 60+6*sin(PI/30*frameCount), 60+6*sin(PI/30*frameCount)); ellipse(340-(mouseX-400)/10, 740-(mouseY-400)/20, 60+6*sin(PI/30*frameCount), 60+6*sin(PI/30*frameCount)); ellipse(500-(mouseX-400)/10, 40-(mouseY-400)/20, 30+3*sin(PI/30*frameCount), 30+3*sin(PI/30*frameCount)); ellipse(660-(mouseX-400)/10, 140-(mouseY-400)/20, 30+3*sin(PI/30*frameCount), 30+3*sin(PI/30*frameCount)); ellipse(800-(mouseX-400)/10, 520-(mouseY-400)/20, 30+3*sin(PI/30*frameCount), 30+3*sin(PI/30*frameCount)); ellipse(180-(mouseX-400)/10, 640-(mouseY-400)/20, 30+3*sin(PI/30*frameCount), 30+3*sin(PI/30*frameCount)); //the actual stars; each star is made of two quads, have a "shine" effect fill(0, 0, 100, 100); //white quad(20-(mouseX-400)/10, 260-(mouseY-400)/20-4*sin(PI/30*frameCount), 30-(mouseX-400)/10, 300-(mouseY-400)/20, 20-(mouseX-400)/10, 340-(mouseY-400)/20+4*sin(PI/30*frameCount), 10-(mouseX-400)/10, 300-(mouseY-400)/20); quad(20-(mouseX-400)/10, 290-(mouseY-400)/20, 60-(mouseX-400)/10+4*sin(PI/30*frameCount), 300-(mouseY-400)/20, 20-(mouseX-400)/10, 310-(mouseY-400)/20, -20-(mouseX-400)/10-4*sin(PI/30*frameCount), 300-(mouseY-400)/20); quad(120-(mouseX-400)/10, 40-(mouseY-400)/20-4*sin(PI/30*frameCount), 130-(mouseX-400)/10, 80-(mouseY-400)/20, 120-(mouseX-400)/10, 120-(mouseY-400)/20+4*sin(PI/30*frameCount), 110-(mouseX-400)/10, 80-(mouseY-400)/20); quad(120-(mouseX-400)/10, 70-(mouseY-400)/20, 160-(mouseX-400)/10+4*sin(PI/30*frameCount), 80-(mouseY-400)/20, 120-(mouseX-400)/10, 90-(mouseY-400)/20, 80-(mouseX-400)/10-4*sin(PI/30*frameCount), 80-(mouseY-400)/20); quad(560-(mouseX-400)/10, 620-(mouseY-400)/20-4*sin(PI/30*frameCount), 570-(mouseX-400)/10, 660-(mouseY-400)/20, 560-(mouseX-400)/10, 700-(mouseY-400)/20+4*sin(PI/30*frameCount), 550-(mouseX-400)/10, 660-(mouseY-400)/20); quad(560-(mouseX-400)/10, 650-(mouseY-400)/20, 600-(mouseX-400)/10+4*sin(PI/30*frameCount), 660-(mouseY-400)/20, 560-(mouseX-400)/10, 670-(mouseY-400)/20, 520-(mouseX-400)/10-4*sin(PI/30*frameCount), 660-(mouseY-400)/20); quad(340-(mouseX-400)/10, 700-(mouseY-400)/20-4*sin(PI/30*frameCount), 350-(mouseX-400)/10, 740-(mouseY-400)/20, 340-(mouseX-400)/10, 780-(mouseY-400)/20+4*sin(PI/30*frameCount), 330-(mouseX-400)/10, 740-(mouseY-400)/20); quad(340-(mouseX-400)/10, 730-(mouseY-400)/20, 380-(mouseX-400)/10+4*sin(PI/30*frameCount), 740-(mouseY-400)/20, 340-(mouseX-400)/10, 750-(mouseY-400)/20, 300-(mouseX-400)/10-4*sin(PI/30*frameCount), 740-(mouseY-400)/20); quad(500-(mouseX-400)/10, 20-(mouseY-400)/20-4*sin(PI/30*frameCount), 505-(mouseX-400)/10, 40-(mouseY-400)/20, 500-(mouseX-400)/10, 60-(mouseY-400)/20+4*sin(PI/30*frameCount), 495-(mouseX-400)/10, 40-(mouseY-400)/20); quad(500-(mouseX-400)/10, 35-(mouseY-400)/20, 520-(mouseX-400)/10+4*sin(PI/30*frameCount), 40-(mouseY-400)/20, 500-(mouseX-400)/10, 45-(mouseY-400)/20, 480-(mouseX-400)/10-4*sin(PI/30*frameCount), 40-(mouseY-400)/20); quad(660-(mouseX-400)/10, 120-(mouseY-400)/20-4*sin(PI/30*frameCount), 665-(mouseX-400)/10, 140-(mouseY-400)/20, 660-(mouseX-400)/10, 160-(mouseY-400)/20+4*sin(PI/30*frameCount), 655-(mouseX-400)/10, 140-(mouseY-400)/20); quad(660-(mouseX-400)/10, 135-(mouseY-400)/20, 680-(mouseX-400)/10+4*sin(PI/30*frameCount), 140-(mouseY-400)/20, 660-(mouseX-400)/10, 145-(mouseY-400)/20, 640-(mouseX-400)/10-4*sin(PI/30*frameCount), 140-(mouseY-400)/20); quad(800-(mouseX-400)/10, 500-(mouseY-400)/20-4*sin(PI/30*frameCount), 805-(mouseX-400)/10, 520-(mouseY-400)/20, 800-(mouseX-400)/10, 540-(mouseY-400)/20+4*sin(PI/30*frameCount), 795-(mouseX-400)/10, 520-(mouseY-400)/20); quad(800-(mouseX-400)/10, 515-(mouseY-400)/20, 820-(mouseX-400)/10+4*sin(PI/30*frameCount), 520-(mouseY-400)/20, 800-(mouseX-400)/10, 525-(mouseY-400)/20, 780-(mouseX-400)/10-4*sin(PI/30*frameCount), 520-(mouseY-400)/20); quad(180-(mouseX-400)/10, 620-(mouseY-400)/20-4*sin(PI/30*frameCount), 185-(mouseX-400)/10, 640-(mouseY-400)/20, 180-(mouseX-400)/10, 660-(mouseY-400)/20+4*sin(PI/30*frameCount), 175-(mouseX-400)/10, 640-(mouseY-400)/20); quad(180-(mouseX-400)/10, 635-(mouseY-400)/20, 200-(mouseX-400)/10+4*sin(PI/30*frameCount), 640-(mouseY-400)/20, 180-(mouseX-400)/10, 645-(mouseY-400)/20, 160-(mouseX-400)/10-4*sin(PI/30*frameCount), 640-(mouseY-400)/20); //trippy background; will only appear if mouseY > 600; appears over the night sky background and has translucent circles that pulse and spin, as well as one that follows the third eye and pulses violently fill((frameCount*4)%360, 100, 40, (-600+mouseY)/2); //flashes rainbow colours rect(400, 400, 800, 800); fill(60, 50, 100, (-600+mouseY)/4); //yellow ellipse(400+(mouseX-400)/20+50*cos(PI/90*frameCount), 400+(mouseY-400)/40+50*sin(PI/90*frameCount), 1000+150*sin(PI/30*frameCount), 1000+150*sin(PI/30*frameCount)); fill(180, 50, 100, (-600+mouseY)/4); //blue ellipse(400+(mouseX-400)/20+50*cos(PI/45*frameCount*-1), 400+(mouseY-400)/40+50*sin(PI/45*frameCount*-1), 600+100*sin(PI/15*frameCount-HALF_PI), 600+100*sin(PI/15*frameCount-HALF_PI)); fill(0, 0, 100, (-600+mouseY)/4); //white ellipse(400+(mouseX-400)/6.5, 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1), 300+50*sin(PI/3*frameCount-PI), 300+50*sin(PI/3*frameCount-PI)); //back glow; is always there unlike the other wacky effects, pulsing translucent circles behind Jirachi fill(0, 0, 100, 12+6*sin(PI/30*frameCount)); //white with varying opacity ellipse(400+(mouseX-400)/20, 400+(mouseY-400)/40, 600+50*sin(PI/30*frameCount-PI), 600+50*sin(PI/30*frameCount-PI)); ellipse(400+(mouseX-400)/20, 400+(mouseY-400)/40, 480+50*sin(PI/30*frameCount-PI), 480+50*sin(PI/30*frameCount-PI)); //All body parts have a breathing animation and move relative to the cursor; arranged and animated in a way such that illusion of depth is achieved //streamer wing things; have "flowing in the wind" effect and trailing effect strokeWeight(3); stroke(50, 100, 100, 100); //yellow fill(50, 50, 100, 100); //bright yellow //right; relative to viewer beginShape(); curveVertex(440+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(440+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(440+(pmouseX-400)/15+120*cos(-PI/18+PI/30*sin(PI/30*frameCount)), 480+(pmouseY-400)/30+120*sin(-PI/18+PI/30*sin(PI/30*frameCount))); curveVertex(440+(pmouseX-400)/15+240*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI/4)), 480+(pmouseY-400)/30+240*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI/4))); curveVertex(440+(pmouseX-400)/15+360*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI/2)), 480+(pmouseY-400)/30+360*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI/2))); curveVertex(440+(pmouseX-400)/15+480*cos(-PI/18+PI/30*sin(PI/30*frameCount-3*PI/4)), 480+(pmouseY-400)/30+480*sin(-PI/18+PI/30*sin(PI/30*frameCount-3*PI/4))); curveVertex(440+(pmouseX-400)/15+600*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI)), 480+(pmouseY-400)/30+600*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI))); curveVertex(440+(pmouseX-400)/15+600*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI)), 480+(pmouseY-400)/30+600*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI))); curveVertex(440+(pmouseX-400)/15+600*cos(PI/18+PI/30*sin(PI/30*frameCount+PI/4)), 480+(pmouseY-400)/30+600*sin(PI/18+PI/30*sin(PI/30*frameCount+PI/4))); curveVertex(440+(pmouseX-400)/15+600*cos(PI/18+PI/30*sin(PI/30*frameCount+PI/4)), 480+(pmouseY-400)/30+600*sin(PI/18+PI/30*sin(PI/30*frameCount+PI/4))); curveVertex(440+(pmouseX-400)/15+480*cos(PI/18+PI/30*sin(PI/30*frameCount)), 480+(pmouseY-400)/30+480*sin(PI/18+PI/30*sin(PI/30*frameCount))); curveVertex(440+(pmouseX-400)/15+360*cos(PI/18+PI/30*sin(PI/30*frameCount-PI/4)), 480+(pmouseY-400)/30+360*sin(PI/18+PI/30*sin(PI/30*frameCount-PI/4))); curveVertex(440+(pmouseX-400)/15+240*cos(PI/18+PI/30*sin(PI/30*frameCount-PI/2)), 480+(pmouseY-400)/30+240*sin(PI/18+PI/30*sin(PI/30*frameCount-PI/2))); curveVertex(440+(pmouseX-400)/15+120*cos(PI/18+PI/30*sin(PI/30*frameCount-3*PI/4)), 480+(pmouseY-400)/30+120*sin(PI/18+PI/30*sin(PI/30*frameCount-3*PI/4))); curveVertex(440+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(440+(mouseX-400)/15, 480+(mouseY-400)/30); endShape(); //left beginShape(); curveVertex(360+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(360+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(360+(pmouseX-400)/15-120*cos(-PI/18+PI/30*sin(PI/30*frameCount)), 480+(pmouseY-400)/30+120*sin(-PI/18+PI/30*sin(PI/30*frameCount))); curveVertex(360+(pmouseX-400)/15-240*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI/4)), 480+(pmouseY-400)/30+240*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI/4))); curveVertex(360+(pmouseX-400)/15-360*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI/2)), 480+(pmouseY-400)/30+360*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI/2))); curveVertex(360+(pmouseX-400)/15-480*cos(-PI/18+PI/30*sin(PI/30*frameCount-3*PI/4)), 480+(pmouseY-400)/30+480*sin(-PI/18+PI/30*sin(PI/30*frameCount-3*PI/4))); curveVertex(360+(pmouseX-400)/15-600*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI)), 480+(pmouseY-400)/30+600*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI))); curveVertex(360+(pmouseX-400)/15-600*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI)), 480+(pmouseY-400)/30+600*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI))); curveVertex(360+(pmouseX-400)/15-600*cos(PI/18+PI/30*sin(PI/30*frameCount+PI/4)), 480+(pmouseY-400)/30+600*sin(PI/18+PI/30*sin(PI/30*frameCount+PI/4))); curveVertex(360+(pmouseX-400)/15-600*cos(PI/18+PI/30*sin(PI/30*frameCount+PI/4)), 480+(pmouseY-400)/30+600*sin(PI/18+PI/30*sin(PI/30*frameCount+PI/4))); curveVertex(360+(pmouseX-400)/15-480*cos(PI/18+PI/30*sin(PI/30*frameCount)), 480+(pmouseY-400)/30+480*sin(PI/18+PI/30*sin(PI/30*frameCount))); curveVertex(360+(pmouseX-400)/15-360*cos(PI/18+PI/30*sin(PI/30*frameCount-PI/4)), 480+(pmouseY-400)/30+360*sin(PI/18+PI/30*sin(PI/30*frameCount-PI/4))); curveVertex(360+(pmouseX-400)/15-240*cos(PI/18+PI/30*sin(PI/30*frameCount-PI/2)), 480+(pmouseY-400)/30+240*sin(PI/18+PI/30*sin(PI/30*frameCount-PI/2))); curveVertex(360+(pmouseX-400)/15-120*cos(PI/18+PI/30*sin(PI/30*frameCount-3*PI/4)), 480+(pmouseY-400)/30+120*sin(PI/18+PI/30*sin(PI/30*frameCount-3*PI/4))); curveVertex(360+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(360+(mouseX-400)/15, 480+(mouseY-400)/30); endShape(); //bright version; all bright versions of shapes will only appear if mouseY > 600 strokeWeight(4); stroke(0, 0, 100, (-600+mouseY)/2); //white fill(50, 25, 100, (-600+mouseY)/2); //bright yellow //right beginShape(); curveVertex(440+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(440+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(440+(pmouseX-400)/15+120*cos(-PI/18+PI/30*sin(PI/30*frameCount)), 480+(pmouseY-400)/30+120*sin(-PI/18+PI/30*sin(PI/30*frameCount))); curveVertex(440+(pmouseX-400)/15+240*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI/4)), 480+(pmouseY-400)/30+240*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI/4))); curveVertex(440+(pmouseX-400)/15+360*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI/2)), 480+(pmouseY-400)/30+360*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI/2))); curveVertex(440+(pmouseX-400)/15+480*cos(-PI/18+PI/30*sin(PI/30*frameCount-3*PI/4)), 480+(pmouseY-400)/30+480*sin(-PI/18+PI/30*sin(PI/30*frameCount-3*PI/4))); curveVertex(440+(pmouseX-400)/15+600*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI)), 480+(pmouseY-400)/30+600*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI))); curveVertex(440+(pmouseX-400)/15+600*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI)), 480+(pmouseY-400)/30+600*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI))); curveVertex(440+(pmouseX-400)/15+600*cos(PI/18+PI/30*sin(PI/30*frameCount+PI/4)), 480+(pmouseY-400)/30+600*sin(PI/18+PI/30*sin(PI/30*frameCount+PI/4))); curveVertex(440+(pmouseX-400)/15+600*cos(PI/18+PI/30*sin(PI/30*frameCount+PI/4)), 480+(pmouseY-400)/30+600*sin(PI/18+PI/30*sin(PI/30*frameCount+PI/4))); curveVertex(440+(pmouseX-400)/15+480*cos(PI/18+PI/30*sin(PI/30*frameCount)), 480+(pmouseY-400)/30+480*sin(PI/18+PI/30*sin(PI/30*frameCount))); curveVertex(440+(pmouseX-400)/15+360*cos(PI/18+PI/30*sin(PI/30*frameCount-PI/4)), 480+(pmouseY-400)/30+360*sin(PI/18+PI/30*sin(PI/30*frameCount-PI/4))); curveVertex(440+(pmouseX-400)/15+240*cos(PI/18+PI/30*sin(PI/30*frameCount-PI/2)), 480+(pmouseY-400)/30+240*sin(PI/18+PI/30*sin(PI/30*frameCount-PI/2))); curveVertex(440+(pmouseX-400)/15+120*cos(PI/18+PI/30*sin(PI/30*frameCount-3*PI/4)), 480+(pmouseY-400)/30+120*sin(PI/18+PI/30*sin(PI/30*frameCount-3*PI/4))); curveVertex(440+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(440+(mouseX-400)/15, 480+(mouseY-400)/30); endShape(); //left beginShape(); curveVertex(360+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(360+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(360+(pmouseX-400)/15-120*cos(-PI/18+PI/30*sin(PI/30*frameCount)), 480+(pmouseY-400)/30+120*sin(-PI/18+PI/30*sin(PI/30*frameCount))); curveVertex(360+(pmouseX-400)/15-240*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI/4)), 480+(pmouseY-400)/30+240*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI/4))); curveVertex(360+(pmouseX-400)/15-360*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI/2)), 480+(pmouseY-400)/30+360*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI/2))); curveVertex(360+(pmouseX-400)/15-480*cos(-PI/18+PI/30*sin(PI/30*frameCount-3*PI/4)), 480+(pmouseY-400)/30+480*sin(-PI/18+PI/30*sin(PI/30*frameCount-3*PI/4))); curveVertex(360+(pmouseX-400)/15-600*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI)), 480+(pmouseY-400)/30+600*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI))); curveVertex(360+(pmouseX-400)/15-600*cos(-PI/18+PI/30*sin(PI/30*frameCount-PI)), 480+(pmouseY-400)/30+600*sin(-PI/18+PI/30*sin(PI/30*frameCount-PI))); curveVertex(360+(pmouseX-400)/15-600*cos(PI/18+PI/30*sin(PI/30*frameCount+PI/4)), 480+(pmouseY-400)/30+600*sin(PI/18+PI/30*sin(PI/30*frameCount+PI/4))); curveVertex(360+(pmouseX-400)/15-600*cos(PI/18+PI/30*sin(PI/30*frameCount+PI/4)), 480+(pmouseY-400)/30+600*sin(PI/18+PI/30*sin(PI/30*frameCount+PI/4))); curveVertex(360+(pmouseX-400)/15-480*cos(PI/18+PI/30*sin(PI/30*frameCount)), 480+(pmouseY-400)/30+480*sin(PI/18+PI/30*sin(PI/30*frameCount))); curveVertex(360+(pmouseX-400)/15-360*cos(PI/18+PI/30*sin(PI/30*frameCount-PI/4)), 480+(pmouseY-400)/30+360*sin(PI/18+PI/30*sin(PI/30*frameCount-PI/4))); curveVertex(360+(pmouseX-400)/15-240*cos(PI/18+PI/30*sin(PI/30*frameCount-PI/2)), 480+(pmouseY-400)/30+240*sin(PI/18+PI/30*sin(PI/30*frameCount-PI/2))); curveVertex(360+(pmouseX-400)/15-120*cos(PI/18+PI/30*sin(PI/30*frameCount-3*PI/4)), 480+(pmouseY-400)/30+120*sin(PI/18+PI/30*sin(PI/30*frameCount-3*PI/4))); curveVertex(360+(mouseX-400)/15, 480+(mouseY-400)/30); curveVertex(360+(mouseX-400)/15, 480+(mouseY-400)/30); endShape(); //arms; both arms are made with one big shape; "sleeves" have trailing effect strokeWeight(3); stroke(205, 25, 100, 100); //light blue fill(0, 0, 100, 100); //white beginShape(); curveVertex(400+(mouseX-400)/12, 460+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/12, 460+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/12+2*sin(PI/30*frameCount), 480+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/12+2*sin(PI/30*frameCount), 520+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(580+(mouseX-400)/12+2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(580+(mouseX-400)/12+2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(570+(mouseX-400)/12+2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(578+(mouseX-400)/12+2*sin(PI/30*frameCount), 595+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(560+(mouseX-400)/12+2*sin(PI/30*frameCount), 590+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(560+(mouseX-400)/12+2*sin(PI/30*frameCount), 600+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(550+(mouseX-400)/12+2*sin(PI/30*frameCount), 590+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(500+(pmouseX-400)/12+2*sin(PI/30*frameCount), 620+(pmouseY-400)/24-2*sin(PI/30*frameCount)); vertex(400+(mouseX-400)/12, 520+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(300+(pmouseX-400)/12-2*sin(PI/30*frameCount), 620+(pmouseY-400)/24-2*sin(PI/30*frameCount)); vertex(250+(mouseX-400)/12-2*sin(PI/30*frameCount), 590+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(240+(mouseX-400)/12-2*sin(PI/30*frameCount), 600+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(240+(mouseX-400)/12-2*sin(PI/30*frameCount), 590+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(222+(mouseX-400)/12-2*sin(PI/30*frameCount), 595+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(230+(mouseX-400)/12-2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(220+(mouseX-400)/12-2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(220+(mouseX-400)/12-2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(220+(mouseX-400)/12-2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/12-2*sin(PI/30*frameCount), 520+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/12-2*sin(PI/30*frameCount), 480+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/12, 460+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/12, 460+(mouseY-400)/24-2*sin(PI/30*frameCount)); endShape(); //bright version strokeWeight(4); stroke(205, 10, 100, (-600+mouseY)/2); //light blue noFill(); //no need to make white even whiter beginShape(); curveVertex(400+(mouseX-400)/12, 460+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/12, 460+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/12+2*sin(PI/30*frameCount), 480+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/12+2*sin(PI/30*frameCount), 520+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(580+(mouseX-400)/12+2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(580+(mouseX-400)/12+2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(570+(mouseX-400)/12+2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(578+(mouseX-400)/12+2*sin(PI/30*frameCount), 595+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(560+(mouseX-400)/12+2*sin(PI/30*frameCount), 590+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(560+(mouseX-400)/12+2*sin(PI/30*frameCount), 600+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(550+(mouseX-400)/12+2*sin(PI/30*frameCount), 590+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(500+(pmouseX-400)/12+2*sin(PI/30*frameCount), 620+(pmouseY-400)/24-2*sin(PI/30*frameCount)); vertex(400+(mouseX-400)/12, 520+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(300+(pmouseX-400)/12-2*sin(PI/30*frameCount), 620+(pmouseY-400)/24-2*sin(PI/30*frameCount)); vertex(250+(mouseX-400)/12-2*sin(PI/30*frameCount), 590+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(240+(mouseX-400)/12-2*sin(PI/30*frameCount), 600+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(240+(mouseX-400)/12-2*sin(PI/30*frameCount), 590+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(222+(mouseX-400)/12-2*sin(PI/30*frameCount), 595+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(230+(mouseX-400)/12-2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); vertex(220+(mouseX-400)/12-2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(220+(mouseX-400)/12-2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(220+(mouseX-400)/12-2*sin(PI/30*frameCount), 580+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/12-2*sin(PI/30*frameCount), 520+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/12-2*sin(PI/30*frameCount), 480+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/12, 460+(mouseY-400)/24-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/12, 460+(mouseY-400)/24-2*sin(PI/30*frameCount)); endShape(); //body; one big shape strokeWeight(4); stroke(205, 25, 100, 100); //light blue fill(0, 0, 100, 100); //white beginShape(); curveVertex(450+(mouseX-400)/10+3*sin(PI/30*frameCount), 500+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/10+3*sin(PI/30*frameCount), 500+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/10+3*sin(PI/30*frameCount), 600+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(440+(mouseX-400)/10+3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(440+(mouseX-400)/10+3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(420+(mouseX-400)/10+2*sin(PI/30*frameCount), 660+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(420+(mouseX-400)/10+2*sin(PI/30*frameCount), 660+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(380+(mouseX-400)/10-2*sin(PI/30*frameCount), 660+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(380+(mouseX-400)/10-2*sin(PI/30*frameCount), 660+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(360+(mouseX-400)/10-3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(360+(mouseX-400)/10-3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(360+(mouseX-400)/10-3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/10-3*sin(PI/30*frameCount), 600+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/10-3*sin(PI/30*frameCount), 500+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/10-3*sin(PI/30*frameCount), 500+(mouseY-400)/20-2*sin(PI/30*frameCount)); endShape(); //bright version strokeWeight(5); stroke(205, 10, 100, (-600+mouseY)/2); //light blue noFill(); beginShape(); curveVertex(450+(mouseX-400)/10+3*sin(PI/30*frameCount), 500+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/10+3*sin(PI/30*frameCount), 500+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/10+3*sin(PI/30*frameCount), 600+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(440+(mouseX-400)/10+3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(440+(mouseX-400)/10+3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(420+(mouseX-400)/10+2*sin(PI/30*frameCount), 660+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(420+(mouseX-400)/10+2*sin(PI/30*frameCount), 660+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(380+(mouseX-400)/10-2*sin(PI/30*frameCount), 660+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(380+(mouseX-400)/10-2*sin(PI/30*frameCount), 660+(mouseY-400)/20-2*sin(PI/30*frameCount)); vertex(360+(mouseX-400)/10-3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(360+(mouseX-400)/10-3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(360+(mouseX-400)/10-3*sin(PI/30*frameCount), 680+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/10-3*sin(PI/30*frameCount), 600+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/10-3*sin(PI/30*frameCount), 500+(mouseY-400)/20-2*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/10-3*sin(PI/30*frameCount), 500+(mouseY-400)/20-2*sin(PI/30*frameCount)); endShape(); //third eye; will open more the closer the cursor is to the bottom //eyeball noStroke(); fill(50, 50, 100, 100); //bright yellow ellipse(400+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount), 120, 80); //bright version fill(50, 10, 100, (-600+mouseY)/2); //even brighter yellow ellipse(400+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount), 120, 80); //iris; will look towards cursor strokeWeight(2); stroke(180, 100, 100, 100); //blue fill(180, 50, 100, 100); //bright blue ellipse(400+(mouseX-400)/6, 580+(mouseY-400)/12-2*sin(PI/30*frameCount), 40, 40); //bright version; flashes rainbow colours strokeWeight(3); stroke(0, 0, 100, -600+mouseY); //white fill((frameCount*4)%360, 50, 100, -600+mouseY); ellipse(400+(mouseX-400)/6, 580+(mouseY-400)/12-2*sin(PI/30*frameCount), 40, 40); noStroke(); fill(0, 0, 100, -600+mouseY); //white ellipse(400+(mouseX-400)/6.5, 580+(mouseY-400)/13-2*sin(PI/30*frameCount), 20, 20); //the bright version has a pupil //top eyelid; opens and closes relative to cursor strokeWeight(1); stroke(0, 0, 100, 100); //white fill(0, 0, 100, 100); //also white beginShape(); curveVertex(340+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 600-mouseY/16*(1-cos(mouseY/509.296))+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9, 560+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 520+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9, 560+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9, 560+(mouseY-400)/18-2*sin(PI/30*frameCount)); endShape(); //bottom eyelid; ditto beginShape(); curveVertex(340+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 600+mouseY/80*(1-cos(mouseY/509.296))+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9, 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9, 600+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 640+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9, 600+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9, 600+(mouseY-400)/18-2*sin(PI/30*frameCount)); endShape(); //eyelashes; line the inner edges of the eyelids strokeWeight(4); stroke(205, 25, 100, 100); //light blue noFill(); beginShape(); //top curveVertex(340+(mouseX-400)/9-2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9-2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 600-mouseY/16*(1-cos(mouseY/509.296))+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9+2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9+2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(340+(mouseX-400)/9-2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9-2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 600+mouseY/80*(1-cos(mouseY/509.296))+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9+2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9+2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); endShape(); //bright version strokeWeight(5); stroke(205, 10, 100, (-600+mouseY)/2); //light blue beginShape(); //top curveVertex(340+(mouseX-400)/9-2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9-2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 600-mouseY/16*(1-cos(mouseY/509.296))+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9+2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9+2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(340+(mouseX-400)/9-2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/9-2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 600+mouseY/80*(1-cos(mouseY/509.296))+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9+2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/9+2*sin(PI/30*frameCount), 580+(mouseY-400)/18-2*sin(PI/30*frameCount)); endShape(); //head; a simple ellipse strokeWeight(4); fill(0, 0, 100, 100); //white stroke(205, 25, 100, 100); //light blue ellipse(400+(mouseX-400)/9, 360+(mouseY-400)/18-3*sin(PI/30*frameCount), 360, 240); //bright version strokeWeight(5); stroke(205, 10, 100, (-600+mouseY)/2); //light blue noFill(); ellipse(400+(mouseX-400)/9, 360+(mouseY-400)/18-3*sin(PI/30*frameCount), 360, 240); //mouth; ellipse that changes size relative to cursor strokeWeight(3); fill(0, 50, 75, 100); //dark pink stroke(205, 25, 100, 100); //light blue ellipse(400+(mouseX-400)/5.75, 430+(mouseY-400)/12-3*sin(PI/30*frameCount), mouseY/20-abs(mouseX-400)/180, 2+mouseY/16.666); //bright version strokeWeight(4); fill(0, 25, 100, (-600+mouseY)/2); //pink stroke(205, 10, 100, (-600+mouseY)/2); //light blue ellipse(400+(mouseX-400)/5.75, 430+(mouseY-400)/12-3*sin(PI/30*frameCount), mouseY/20-abs(mouseX-400)/180, 2+mouseY/16.666); //eyes; will close more the closer the cursor is to the bottom; has base colour, pupil and shiny effects noStroke(); //right fill(0, 0, 0, 100); //black as the void ellipse(480+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount), 60, 70); fill(180, 100, 50, 100); //blue pupil will look at cursor ellipse(480+(mouseX-400)/5, 370+(mouseY-400)/10-3*sin(PI/30*frameCount), 30-(mouseX-400)/180, 30-abs(mouseY-400)/120-(mouseX-400)/200); fill(180, 100, 100, 25); //shiny effect ellipse(480+(mouseX-400)/5.75, 390+(mouseY-400)/12-3*sin(PI/30*frameCount), 40-(mouseX-400)/200, 30-(mouseY-400)/120-(mouseX-400)/200); fill(0, 0, 100, 80); //shinier effect ellipse(480+(mouseX-400)/5.75, 350+(mouseY-400)/12-3*sin(PI/30*frameCount), 30-(mouseX-400)/180, 25+(mouseY-400)/120-(mouseX-400)/200); //left fill(0, 0, 0, 100); ellipse(320+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount), 60, 70); fill(180, 100, 50, 100); ellipse(320+(mouseX-400)/5, 370+(mouseY-400)/10-3*sin(PI/30*frameCount), 30+(mouseX-400)/180, 30-abs(mouseY-400)/120+(mouseX-400)/200); fill(180, 100, 100, 25); ellipse(320+(mouseX-400)/5.75, 390+(mouseY-400)/12-3*sin(PI/30*frameCount), 40+(mouseX-400)/200, 30-(mouseY-400)/120+(mouseX-400)/200); fill(0, 0, 100, 80); ellipse(320+(mouseX-400)/5.75, 350+(mouseY-400)/12-3*sin(PI/30*frameCount), 30+(mouseX-400)/180, 25+(mouseY-400)/120+(mouseX-400)/200); //bright version fill(0, 0, 100, (-600+mouseY)/2); //white ellipse(480+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount), 60, 70); ellipse(320+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount), 60, 70); //eyelids; opens and closes relative to cursor; align with eyeballs noStroke(); fill(0, 0, 100, 100); //white //right beginShape(); //top curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 335+(mouseY/20)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(450+(mouseX-400)/6, 320+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(510+(mouseX-400)/6, 320+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 405-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(450+(mouseX-400)/6, 420+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(510+(mouseX-400)/6, 420+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //left beginShape(); //top curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 335+(mouseY/20)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(290+(mouseX-400)/6, 320+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(350+(mouseX-400)/6, 320+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 405-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(290+(mouseX-400)/6, 420+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(350+(mouseX-400)/6, 420+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //teardrops; align with bottom eyelids fill(180, 100, 75, 100); //blue triangle(490+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 470+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 480+(mouseX-400)/6, 425-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); triangle(330+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 310+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 320+(mouseX-400)/6, 425-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); //bright version of teardrops strokeWeight(1); fill(180, 25, 100, (-600+mouseY)/2); //bright blue stroke(180, 25, 100, (-600+mouseY)/2); //ditto triangle(490+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 470+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 480+(mouseX-400)/6, 425-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); triangle(330+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 310+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 320+(mouseX-400)/6, 425-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); //eyelashes; align with eyelids strokeWeight(3); noFill(); stroke(205, 25, 100, 100); //light blue //right beginShape(); //top curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 335+(mouseY/20)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 405-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //left beginShape(); //top curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 335+(mouseY/20)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 405-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //bright version strokeWeight(4); stroke(205, 10, 100, (-600+mouseY)/2); //right beginShape(); //top curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 335+(mouseY/20)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 405-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //left beginShape(); //top curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 335+(mouseY/20)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 337+(mouseY/21.622)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 344+(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 352+(mouseY/40)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 360+(mouseY/72.727)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 405-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 396-(mouseY/34.783)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 388-(mouseY/50)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 380-(mouseY/88.888)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //hat-looking thing; one big leaf-like shape; different control points move on different scales to give depth strokeWeight(4); stroke(50, 100, 100, 100); //yellow fill(50, 50, 100, 100); //bright yellow beginShape(); curveVertex(400+(mouseX-400)/8, 40+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 40+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/8, 120+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); vertex(520+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(620+(mouseX-400)/10, 240+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(720+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(720+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); vertex(720+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(720+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(660+(mouseX-400)/10, 380+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(560+(mouseX-400)/10, 420+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(560+(mouseX-400)/10, 420+(mouseY-400)/18-3*sin(PI/30*frameCount)); vertex(540+(mouseX-400)/8, 340+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(470+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(440+(mouseX-400)/6, 340+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/6, 350+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(360+(mouseX-400)/6, 340+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); vertex(260+(mouseX-400)/8, 340+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(240+(mouseX-400)/8, 420+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(240+(mouseX-400)/10, 420+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(140+(mouseX-400)/10, 380+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(80+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(80+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); vertex(80+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(80+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(180+(mouseX-400)/10, 240+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); vertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/8, 120+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 40+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 40+(mouseY-400)/30-3*sin(PI/30*frameCount)); endShape(); //bright version strokeWeight(5); stroke(0, 0, 100, (-600+mouseY)/2); //white fill(50, 25, 100, (-600+mouseY)/2); //bright yellow beginShape(); curveVertex(400+(mouseX-400)/8, 40+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 40+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/8, 120+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); vertex(520+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(620+(mouseX-400)/10, 240+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(720+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(720+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); vertex(720+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(720+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(660+(mouseX-400)/10, 380+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(560+(mouseX-400)/10, 420+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(560+(mouseX-400)/10, 420+(mouseY-400)/18-3*sin(PI/30*frameCount)); vertex(540+(mouseX-400)/8, 340+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(470+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(440+(mouseX-400)/6, 340+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/6, 350+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(360+(mouseX-400)/6, 340+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 320+(mouseY-400)/10-3*sin(PI/30*frameCount)); vertex(260+(mouseX-400)/8, 340+(mouseY-400)/12-3*sin(PI/30*frameCount)); vertex(240+(mouseX-400)/8, 420+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(240+(mouseX-400)/10, 420+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(140+(mouseX-400)/10, 380+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(80+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(80+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); vertex(80+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(80+(mouseX-400)/12, 320+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(180+(mouseX-400)/10, 240+(mouseY-400)/18-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); vertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/8, 200+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/8, 120+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 40+(mouseY-400)/30-3*sin(PI/30*frameCount)); curveVertex(400+(mouseX-400)/8, 40+(mouseY-400)/30-3*sin(PI/30*frameCount)); endShape(); //hat floppy parts; have trailing effect strokeWeight(4); stroke(50, 100, 100, 100); //yellow fill(50, 50, 100, 100); //bright yellow //right beginShape(); curveVertex(580+(mouseX-400)/7, 350+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(580+(mouseX-400)/7, 350+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(620+(pmouseX-400)/7, 480+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(580+(pmouseX-400)/7, 520+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(530+(pmouseX-400)/6, 480+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/6, 325+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/6, 325+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //left beginShape(); curveVertex(220+(mouseX-400)/7, 350+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(220+(mouseX-400)/7, 350+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(180+(pmouseX-400)/7, 480+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(220+(pmouseX-400)/7, 520+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(270+(pmouseX-400)/6, 480+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/6, 325+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/6, 325+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //bright version strokeWeight(5); stroke(0, 0, 100, (-600+mouseY)/2); //white fill(50, 25, 100, (-600+mouseY)/2); //bright yellow //right beginShape(); curveVertex(580+(mouseX-400)/7, 350+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(580+(mouseX-400)/7, 350+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(620+(pmouseX-400)/7, 480+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(580+(pmouseX-400)/7, 520+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(530+(pmouseX-400)/6, 480+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/6, 320+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(520+(mouseX-400)/6, 320+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //left beginShape(); curveVertex(220+(mouseX-400)/7, 350+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(220+(mouseX-400)/7, 350+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(180+(pmouseX-400)/7, 480+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(220+(pmouseX-400)/7, 520+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(270+(pmouseX-400)/6, 480+(pmouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/6, 325+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(280+(mouseX-400)/6, 325+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //tags; quads that distort relative to cursor for depth effect, have trailing effect strokeWeight(4); stroke(180, 100, 50, 100); //dark blue fill(180, 100, 75, 100); //blue quad(425+mouseY/160+(mouseX-400)/7, 80+(mouseY-400)/16-3*sin(PI/30*frameCount)+(mouseX-400)/200, 375-mouseY/160+(mouseX-400)/7, 80+(mouseY-400)/16-3*sin(PI/30*frameCount)-(mouseX-400)/200, 370+(pmouseX-400)/5, 220+pmouseY/12-3*sin(PI/30*frameCount)-(mouseX-400)/100, 430+(pmouseX-400)/5, 220+pmouseY/12-3*sin(PI/30*frameCount)+(mouseX-400)/100); quad(730+(mouseX-400)/12, 340+(mouseY-400)/15-3*sin(PI/30*frameCount)+mouseX/200, 670+(mouseX-400)/10, 340+(mouseY-400)/15-3*sin(PI/30*frameCount), 670+(pmouseX-400)/10, 520+(pmouseY-400)/15-3*sin(PI/30*frameCount), 730+(pmouseX-400)/12, 520+(pmouseY-400)/15-3*sin(PI/30*frameCount)-mouseX/200); quad(130+(mouseX-400)/10, 340+(mouseY-400)/15-3*sin(PI/30*frameCount), 70+(mouseX-400)/12, 340+(mouseY-400)/15-3*sin(PI/30*frameCount)+(800-mouseX)/200, 70+(pmouseX-400)/12, 520+(pmouseY-400)/15-3*sin(PI/30*frameCount)-(800-mouseX)/200, 130+(pmouseX-400)/10, 520+(pmouseY-400)/15-3*sin(PI/30*frameCount)); //bright version strokeWeight(5); stroke(0, 0, 100, (-600+mouseY)/2); //white fill(180, 25, 100, (-600+mouseY)/2); //bright blue quad(425+mouseY/160+(mouseX-400)/7, 80+(mouseY-400)/16-3*sin(PI/30*frameCount)+(mouseX-400)/200, 375-mouseY/160+(mouseX-400)/7, 80+(mouseY-400)/16-3*sin(PI/30*frameCount)-(mouseX-400)/200, 370+(pmouseX-400)/5, 220+pmouseY/12-3*sin(PI/30*frameCount)-(mouseX-400)/100, 430+(pmouseX-400)/5, 220+pmouseY/12-3*sin(PI/30*frameCount)+(mouseX-400)/100); quad(730+(mouseX-400)/12, 340+(mouseY-400)/15-3*sin(PI/30*frameCount)+mouseX/200, 670+(mouseX-400)/10, 340+(mouseY-400)/15-3*sin(PI/30*frameCount), 670+(pmouseX-400)/10, 520+(pmouseY-400)/15-3*sin(PI/30*frameCount), 730+(pmouseX-400)/12, 520+(pmouseY-400)/15-3*sin(PI/30*frameCount)-mouseX/200); quad(130+(mouseX-400)/10, 340+(mouseY-400)/15-3*sin(PI/30*frameCount), 70+(mouseX-400)/12, 340+(mouseY-400)/15-3*sin(PI/30*frameCount)+(800-mouseX)/200, 70+(pmouseX-400)/12, 520+(pmouseY-400)/15-3*sin(PI/30*frameCount)-(800-mouseX)/200, 130+(pmouseX-400)/10, 520+(pmouseY-400)/15-3*sin(PI/30*frameCount)); //trippy circles of waves; will only appear if mouseY > 600; spin and wave formations are controlled by sine waves strokeWeight(4); noFill(); stroke((frameCount*6)%360, 50, 100, (-600+mouseY)/4); //flashes rainbow colours beginShape(); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+PI/8)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount+PI/4), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount+PI/4)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+3*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+3*PI/8)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount+PI/2), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount+PI/2)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+5*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+5*PI/8)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount+3*PI/4), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount+3*PI/4)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+7*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+7*PI/8)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount+PI), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount+PI)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+9*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+9*PI/8)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount+5*PI/4), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount+5*PI/4)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+11*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+11*PI/8)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount+3*PI/2), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount+3*PI/2)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+13*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+13*PI/8)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount+7*PI/4), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount+7*PI/4)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+15*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+15*PI/8)); vertex(400+(mouseX-400)/6+(400+100*sin(PI/10*frameCount))*cos(PI/120*frameCount), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+100*sin(PI/10*frameCount))*sin(PI/120*frameCount)); endShape(); stroke((frameCount*6+180)%360, 50, 100, (-600+mouseY)/4); //flashes rainbow colours beginShape(); //this one convulses more than the one above vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount))*cos(PI/120*frameCount+PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount))*sin(PI/120*frameCount+PI/8)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+PI/4), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+PI/4)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount))*cos(PI/120*frameCount+3*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount))*sin(PI/120*frameCount+3*PI/8)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+PI/2), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+PI/2)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount))*cos(PI/120*frameCount+5*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount))*sin(PI/120*frameCount+5*PI/8)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+3*PI/4), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+3*PI/4)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount))*cos(PI/120*frameCount+7*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount))*sin(PI/120*frameCount+7*PI/8)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+PI), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+PI)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount))*cos(PI/120*frameCount+9*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount))*sin(PI/120*frameCount+9*PI/8)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+5*PI/4), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+5*PI/4)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount))*cos(PI/120*frameCount+11*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount))*sin(PI/120*frameCount+11*PI/8)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+3*PI/2), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+3*PI/2)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount))*cos(PI/120*frameCount+13*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount))*sin(PI/120*frameCount+13*PI/8)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount+7*PI/4), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount+7*PI/4)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount))*cos(PI/120*frameCount+15*PI/8), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount))*sin(PI/120*frameCount+15*PI/8)); vertex(400+(mouseX-400)/6+(400+200*sin(PI/10*frameCount-PI))*cos(PI/120*frameCount), 580+(mouseY-400)/12-2*sin(PI/30*frameCount)+(400+200*sin(PI/10*frameCount-PI))*sin(PI/120*frameCount)); endShape(); //pretty light show; will only appear if mouseY > 600; each beam of light is a really long triangle noStroke(); fill(0, 0, 100, (-600+mouseY)/4); //translucent white triangle(400+(mouseX-400)/6.5, 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1), 400+(mouseX-400)/6.5+1000*cos(PI/100*frameCount*-1), 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1)+1000*sin(PI/100*frameCount*-1), 400+(mouseX-400)/6.5+1000*cos(PI/100*frameCount*-1+PI/6), 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1)+1000*sin(PI/100*frameCount*-1+PI/6)); triangle(400+(mouseX-400)/6.5, 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1), 400+(mouseX-400)/6.5+1000*cos(PI/100*frameCount*-1+2*PI/3), 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1)+1000*sin(PI/100*frameCount*-1+2*PI/3), 400+(mouseX-400)/6.5+1000*cos(PI/100*frameCount*-1+2*PI/3+PI/6), 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1)+1000*sin(PI/100*frameCount*-1+2*PI/3+PI/6)); triangle(400+(mouseX-400)/6.5, 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1), 400+(mouseX-400)/6.5+1000*cos(PI/100*frameCount*-1+4*PI/3), 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1)+1000*sin(PI/100*frameCount*-1+4*PI/3), 400+(mouseX-400)/6.5+1000*cos(PI/100*frameCount*-1+4*PI/3+PI/6), 580+(mouseY-400)/13-2*sin(PI/30*frameCount*-1)+1000*sin(PI/100*frameCount*-1+4*PI/3+PI/6)); } void mousePressed() { //eyes blink when mouse is pressed colorMode(HSB, 360, 100, 100, 100); //eyelids; completely cover eyes, eyelashes and teardrops fill(0, 0, 100, 100); //white strokeWeight(4); stroke(0, 0, 100, 100); ellipse(480+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount), 60, 70); ellipse(320+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount), 60, 70); triangle(490+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 470+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 480+(mouseX-400)/6, 425-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); triangle(330+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 310+(mouseX-400)/6, 403-(mouseY/27.586)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 320+(mouseX-400)/6, 425-(mouseY/26.666)*(1-cos(mouseY/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); //new teardrops; in closed position regardless of mouse position noStroke(); fill(180, 100, 75, 100); //blue triangle(490+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 470+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 480+(mouseX-400)/6, 425-(800/26.666)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); triangle(330+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 310+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 320+(mouseX-400)/6, 425-(800/26.666)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); //bright version of teardrops strokeWeight(1); fill(180, 25, 100, (-600+mouseY)/2); //bright blue stroke(180, 25, 100, (-600+mouseY)/2); //ditto triangle(490+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 470+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 480+(mouseX-400)/6, 425-(800/26.666)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); triangle(330+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 310+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount), 320+(mouseX-400)/6, 425-(800/26.666)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); //new eyelashes; in closed position regardless of mouse position strokeWeight(4); noFill(); stroke(205, 25, 100, 100); //light blue //right beginShape(); //top curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 360+(800/72.727)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 352+(800/40)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 344+(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 337+(800/21.622)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 335+(800/20)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 337+(800/21.622)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 344+(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 352+(800/40)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 360+(800/72.727)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 380-(800/88.888)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 388-(800/50)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 396-(800/34.783)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 405-(800/26.666)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 396-(800/34.783)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 388-(800/50)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 380-(800/88.888)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //left beginShape(); //top curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 360+(800/72.727)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 352+(800/40)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 344+(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 337+(800/21.622)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 335+(800/20)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 337+(800/21.622)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 344+(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 352+(800/40)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 360+(800/72.727)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 380-(800/88.888)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 388-(800/50)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 396-(800/34.783)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 405-(800/26.666)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 396-(800/34.783)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 388-(800/50)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 380-(800/88.888)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //bright version strokeWeight(4); stroke(205, 10, 100, (-600+mouseY)/2); //right beginShape(); //top curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 360+(800/72.727)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 352+(800/40)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 344+(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 337+(800/21.622)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 335+(800/20)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 337+(800/21.622)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 344+(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 352+(800/40)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 360+(800/72.727)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(510+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(508+(mouseX-400)/6, 380-(800/88.888)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(505+(mouseX-400)/6, 388-(800/50)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(500+(mouseX-400)/6, 396-(800/34.783)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(490+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(480+(mouseX-400)/6, 405-(800/26.666)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(470+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(460+(mouseX-400)/6, 396-(800/34.783)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(455+(mouseX-400)/6, 388-(800/50)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(452+(mouseX-400)/6, 380-(800/88.888)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(450+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); //left beginShape(); //top curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 360+(800/72.727)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 352+(800/40)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 344+(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 337+(800/21.622)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 335+(800/20)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 337+(800/21.622)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 344+(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 352+(800/40)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 360+(800/72.727)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); beginShape(); //bottom curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(350+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(348+(mouseX-400)/6, 380-(800/88.888)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(345+(mouseX-400)/6, 388-(800/50)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(340+(mouseX-400)/6, 396-(800/34.783)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(330+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(320+(mouseX-400)/6, 405-(800/26.666)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(310+(mouseX-400)/6, 403-(800/27.586)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(300+(mouseX-400)/6, 396-(800/34.783)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(295+(mouseX-400)/6, 388-(800/50)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(292+(mouseX-400)/6, 380-(800/88.888)*(1-cos(800/509.296))+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); curveVertex(290+(mouseX-400)/6, 370+(mouseY-400)/12-3*sin(PI/30*frameCount)); endShape(); }