Copyright 2008
80's Fun Time
import processing.core.*;
import processing.xml.*;
import java.applet.*;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.MouseEvent;
import java.awt.event.KeyEvent;
import java.awt.event.FocusEvent;
import java.awt.Image;
import java.io.*;
import java.net.*;
import java.text.*;
import java.util.*;
import java.util.zip.*;
import java.util.regex.*;
public class waves extends PApplet {
float time = 0;
float dis,xDis,yDis;
float xStart,yStart,xEnd,yEnd,xMid,yMid;
float xNois,yNois;
public void setup() {
background(255);
size(400, 500);
smooth();
noStroke();
frameRate(30);
//strokeWeight(10);
}
public void draw() {
xStart = width/2;
yStart = 0;
xEnd = width/2;
yEnd = height;
xDis = norm(abs(xEnd-xStart),0,width);
yDis = norm(abs(yEnd-yStart),0,height);
dis = norm(dist(xStart, yStart, xEnd, yEnd),-1000,1000)*300;
background(19,232,43);
fill(2,11,250);
beginShape();
curveVertex(xStart, yStart); // control point (first)
curveVertex(xStart, yStart); // point of curve (first)
int count = 10;
count++;
for (float j=1.0f; j<=count; j+=0.25f) {
for (float i=1.0f; i<=count; i+=2) {
float step = i/count;
xMid = lerp(xStart, xEnd,step);
yMid = lerp(yStart, yEnd,step);
float smoothing = step;
xNois= ((cos(time+i*.2f +j/2)*2)-1)*dis*yDis*smoothing*j + atan(time*i+j+1);
println("xNois = "+xNois);
yNois= ((cos(time+j*.2f +i/2)*2)-1)*dis*smoothing;
println("yNois = "+yNois);
strokeWeight(0.01f);
//fill(25+(xNois*0.01),75+yNois,50);
curveVertex(xMid+xNois, yMid+yNois); //mid control point
//ellipse(xMid+xNois, yMid+yNois, 10, 10);
}
}
curveVertex(xEnd, yEnd); // point of curve (last)
curveVertex(xEnd, yEnd); // control point (last)
endShape();
fill(250,2,242);
beginShape();
curveVertex(xStart, yStart); // control point (first)
curveVertex(xStart, yStart); // point of curve (first)
int count2 = 5;
count2++;
for (float j=1.0f; j<=count2; j+=0.25f) {
for (float i=1.0f; i<=count2; i+=2) {
float step = i/count2;
yMid = lerp(xStart, xEnd,step);
xMid = lerp(yStart, yEnd,step);
float smoothing = step;
yNois= ((cos(time+i*.2f +j/2)*2)-1)*dis*yDis*smoothing*j + atan(time*i+j+1);
println("xNois = "+xNois);
xNois= ((cos(time+j*.2f +i/2)*2)-1)*dis*smoothing;
println("yNois = "+yNois);
strokeWeight(0.01f);
//fill(25+(xNois*0.01),75+yNois,50);
curveVertex(xMid+xNois, yMid+yNois); //mid control point
//ellipse(xMid+xNois, yMid+yNois, 10, 10);
}
}
curveVertex(xEnd, yEnd); // point of curve (last)
curveVertex(xEnd, yEnd); // control point (last)
endShape();
time+=(.005f*(mouseX-200));
}
static public void main(String args[]) {
PApplet.main(new String[] { "--bgcolor=#FFFFFF", "waves" });
}
}