void setup(){ size(400,400); ////////surface.setResizable(true); ////////hint(ENABLE_STROKE_PURE); //fixes some of the jitteryness with lines } void draw(){ background(198,231,255); rectMode(CORNERS); noStroke(); //moon fill(244,244,255); ellipse(200,140,200,200); //mountain 1 fill(191,212,240); triangle(170,250,250,150,350,250); fill(91,84,103,60);//shadow triangle(170,250,250,150,220,250);//shadow //mountain 2 fill(179,189,214); triangle(50,250,150,120,260,250); fill(91,84,103,60);//shadow triangle(50,250,150,120,110,250);//shadow //sea fog fill(255); rect(0,250,400,260); fill(255,255,255,150); rect(0,240,400,250); fill(255,255,255,80); rect(0,230,400,240); fill(255,255,255,40); rect(0,220,400,230); //waves fill(183,207,226); //wave 5 rect(0,(float)(260+Math.sin(frameCount*.03-2.4)),400,400); fill(134,179,214); //wave 4 rect(0,(float)(272+Math.sin(frameCount*.03-1.6)*2),400,400); //fish inside wave 3 and behind boat //they are just ellipses because they are small and far away fill(255,211,237); ellipse(-20+(mouseX-200)*0.4+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02+25))*50)-(4*0.4)+310, 5,3); ellipse(40+(mouseX-200)*0.5+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02+27))*50)-(4*0.4)+310, 5,3); ellipse(100+(mouseX-200)*0.4+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02+17))*30)-(4*0.4)+310, 5,3); ellipse(110+(mouseX-200)*0.5+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02+28))*40)-(4*0.4)+310, 5,3); ellipse(160+(mouseX-200)*0.4+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02-5))*55)-(4*0.4)+310, 5,3); ellipse(230+(mouseX-200)*0.4+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*30)-(4*0.4)+310, 5,3); ellipse(270+(mouseX-200)*0.3+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02-15))*35)-(4*0.4)+310, 5,3); ellipse(310+(mouseX-200)*0.4+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02+20))*40)-(4*0.4)+310, 5,3); ellipse(380+(mouseX-200)*0.4+(6.93*0.4),(float)(-Math.abs(Math.sin(mouseX*0.02-4))*50)-(4*0.4)+310, 5,3); //BOAT rectMode(CENTER); //fishingrod noFill(); stroke(255,255,255); strokeWeight(1); arc((float)(195+Math.cos(frameCount*.03-.8)*6), (float)(260+Math.sin(frameCount*.03-.8)*6),45,60,0,(float)Math.PI/2); //the line stroke(90,71,53); strokeWeight(2.5); arc((float)(220+Math.cos(frameCount*.03-.8)*6), (float)(275+Math.sin(frameCount*.03-.8)*6),30,30,-(float)Math.PI+1.4,0); //the rod noStroke(); //fisherman fill(123,164,165); rect( (float)(240+Math.cos(frameCount*.03-.8)*6), (float)(275+Math.sin(frameCount*.03-.8)*6), 9,17,3); fill(122,114,95); ellipse((float)(240+Math.cos(frameCount*.03-.8)*6), (float)(263+Math.sin(frameCount*.03-.8)*6),8,8); //boxes fill(200,200,200); rect( (float)(282+Math.cos(frameCount*.03-.8)*6), (float)(281+Math.sin(frameCount*.03-.8)*6), 14,10,2); rect( (float)(268+Math.cos(frameCount*.03-.8)*6), (float)(281+Math.sin(frameCount*.03-.8)*6), 8,15,2); //hood fill(118,106,99); rect( (float)(280+Math.cos(frameCount*.03-.8)*6), (float)(281+Math.sin(frameCount*.03-.8)*6), 3,32); rect( (float)(300+Math.cos(frameCount*.03-.8)*6), (float)(281+Math.sin(frameCount*.03-.8)*6), 3,32); fill(232,185,98); rect( (float)(290+Math.cos(frameCount*.03-.8)*6), (float)(260+Math.sin(frameCount*.03-.8)*6), 30,10); fill(108,96,89); //hull rect( (float)(275+Math.cos(frameCount*.03-.8)*6), (float)(286+Math.sin(frameCount*.03-.8)*6), 60,10); //bow triangle( (float)(275+Math.cos(frameCount*.03-.8)*6), (float)(286+Math.sin(frameCount*.03-.8)*6), (float)(215+Math.cos(frameCount*.03-.8)*6), (float)(275+Math.sin(frameCount*.03-.8)*6), (float)(245+Math.cos(frameCount*.03-.8)*6), (float)(291+Math.sin(frameCount*.03-.8)*6) ); //waves in front of boat rectMode(CORNERS); fill(87,153,191); //wave 3 rect(0,(float)(290+Math.sin(frameCount*.03-.8)*6),400,400); //fish inside wave 2 fill(255,201,227); //fish 1 quad( //Don't worry, I didn't type this all. I wrote another program to produce this code using variables. (mouseX-200)*.7+(6.93*.7),(float)(-Math.abs(Math.sin(mouseX*0.02+30))*70)-(4*.7)+350, (mouseX-200)*.7+(2.5*.7) ,(float)(-Math.abs(Math.sin(mouseX*0.02+30))*70)+(4.3*.7)+350, (mouseX-200)*.7-(6.9*.7) ,(float)(-Math.abs(Math.sin(mouseX*0.02+30))*70)+(4*.7)+350, (mouseX-200)*.7-(2.5*.7) ,(float)(-Math.abs(Math.sin(mouseX*0.02+30))*70)-(4.3*.7)+350 ); triangle( (mouseX-200)*.7-(12*.7) ,(float)(-Math.abs(Math.sin(mouseX*0.02+30))*70)+4*.7+350, (mouseX-200)*.7-(6.9*.7),(float)(-Math.abs(Math.sin(mouseX*0.02+30))*70)+4*.7+350, (mouseX-200)*.7-(8.8*.7),(float)(-Math.abs(Math.sin(mouseX*0.02+30))*70)+9*.7+350 ); //fish 2 quad( 125+(mouseX-200)*0.7+(6.93*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+25))*76)-(4*0.7)+350, 125+(mouseX-200)*0.7+(2.5*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+25))*76)+(4.3*0.7)+350, 125+(mouseX-200)*0.7-(6.9*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+25))*76)+(4*0.7)+350, 125+(mouseX-200)*0.7-(2.5*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+25))*76)-(4.3*0.7)+350); triangle( 125+(mouseX-200)*0.7-(12*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+25))*76)+(4*0.7)+350, 125+(mouseX-200)*0.7-(6.9*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+25))*76)+(4*0.7)+350, 125+(mouseX-200)*0.7-(8.8*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+25))*76)+(9*0.7)+350); //fish 3 quad( 275+(mouseX-200)*0.7+(6.93*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+35))*60)-(4*0.7)+350, 275+(mouseX-200)*0.7+(2.5*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+35))*60)+(4.3*0.7)+350, 275+(mouseX-200)*0.7-(6.9*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+35))*60)+(4*0.7)+350, 275+(mouseX-200)*0.7-(2.5*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+35))*60)-(4.3*0.7)+350); triangle( 275+(mouseX-200)*0.7-(12*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+35))*60)+(4*0.7)+350, 275+(mouseX-200)*0.7-(6.9*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+35))*60)+(4*0.7)+350, 275+(mouseX-200)*0.7-(8.8*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+35))*60)+(9*0.7)+350); //fish 4 quad( 370+(mouseX-200)*0.7+(6.93*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)-(4*0.7)+350, 370+(mouseX-200)*0.7+(2.5*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(4.3*0.7)+350, 370+(mouseX-200)*0.7-(6.9*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(4*0.7)+350, 370+(mouseX-200)*0.7-(2.5*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)-(4.3*0.7)+350); triangle( 370+(mouseX-200)*0.7-(12*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(4*0.7)+350, 370+(mouseX-200)*0.7-(6.9*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(4*0.7)+350, 370+(mouseX-200)*0.7-(8.8*0.7),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(9*0.7)+350); //wave 2 fill(55,127,158); rect(0,(float)(325+Math.sin(frameCount*.03)*12),400,400); //fish inside wave 1 fill(255,201,227); //fish 1 quad(200+(mouseX-200)*.8+6.93,(float)(-Math.abs(Math.sin(mouseX*0.02))*80 +400)-4, 200+(mouseX-200)*.8+2.5,(float)(-Math.abs(Math.sin(mouseX*0.02))*80 +400)+4.3, 200+(mouseX-200)*.8-6.9,(float)(-Math.abs(Math.sin(mouseX*0.02))*80 +400)+4, 200+(mouseX-200)*.8-2.5,(float)(-Math.abs(Math.sin(mouseX*0.02))*80 +400)-4.3); triangle(200+(mouseX-200)*.8-12,(float)(-Math.abs(Math.sin(mouseX*0.02))*80 +400)+4, 200+(mouseX-200)*.8-6.9,(float)(-Math.abs(Math.sin(mouseX*0.02))*80 +400)+4, 200+(mouseX-200)*.8-8.8,(float)(-Math.abs(Math.sin(mouseX*0.02))*80 +400)+9); //fish2 quad(80+(mouseX-200)*.8+6.93,(float)(-Math.abs(Math.sin(mouseX*0.02-40))*100 +400)-4, 80+(mouseX-200)*.8+2.5,(float)(-Math.abs(Math.sin(mouseX*0.02-40))*100 +400)+4.3, 80+(mouseX-200)*.8-6.9,(float)(-Math.abs(Math.sin(mouseX*0.02-40))*100 +400)+4, 80+(mouseX-200)*.8-2.5,(float)(-Math.abs(Math.sin(mouseX*0.02-40))*100 +400)-4.3); triangle(80+(mouseX-200)*.8-12,(float)(-Math.abs(Math.sin(mouseX*0.02-40))*100 +400)+4, 80+(mouseX-200)*.8-6.9,(float)(-Math.abs(Math.sin(mouseX*0.02-40))*100 +400)+4, 80+(mouseX-200)*.8-8.8,(float)(-Math.abs(Math.sin(mouseX*0.02-40))*100 +400)+9); //fish3 quad(400+(mouseX-200)*.8+6.93,(float)(-Math.abs(Math.sin(mouseX*0.02-60))*70 +400)-4, 400+(mouseX-200)*.8+2.5,(float)(-Math.abs(Math.sin(mouseX*0.02-60))*70 +400)+4.3, 400+(mouseX-200)*.8-6.9,(float)(-Math.abs(Math.sin(mouseX*0.02-60))*70 +400)+4, 400+(mouseX-200)*.8-2.5,(float)(-Math.abs(Math.sin(mouseX*0.02-60))*70 +400)-4.3); triangle(400+(mouseX-200)*.8-12,(float)(-Math.abs(Math.sin(mouseX*0.02-60))*70 +400)+4, 400+(mouseX-200)*.8-6.9,(float)(-Math.abs(Math.sin(mouseX*0.02-60))*70 +400)+4, 400+(mouseX-200)*.8-8.8,(float)(-Math.abs(Math.sin(mouseX*0.02-60))*70 +400)+9); //fish4 quad( -80+(mouseX-200)*0.7+(6.93*1),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)-(4*1)+400, -80+(mouseX-200)*0.7+(2.5*1),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(4.3*1)+400, -80+(mouseX-200)*0.7-(6.9*1),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(4*1)+400, -80+(mouseX-200)*0.7-(2.5*1),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)-(4.3*1)+400); triangle( -80+(mouseX-200)*0.7-(12*1),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(4*1)+400, -80+(mouseX-200)*0.7-(6.9*1),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(4*1)+400, -80+(mouseX-200)*0.7-(8.8*1),(float)(-Math.abs(Math.sin(mouseX*0.02+15))*70)+(9*1)+400); //wave 1 fill(29,96,117); rect(0,(float)(375+Math.sin(frameCount*.03+.8)*18),400,400); }