Monday, September 25, 2006


// KLISTREKLUMP
Dot d[] = new Dot[80];
PImage b;

float klumpsize;


void setup() {
size(600,600);

smooth();
noStroke();
noCursor();
framerate(50);

b = loadImage("virus4svhv.jpg");



klumpsize = 60;


for(int i=0; i<1)klumpsize=2; x =" random(width);" y =" random(height);" angle =" random(360);" speed =" 0.3;" dotsize =" random(12,20);" stuck =" false;" ramme =" 100;" x="width+ramme;">width+ramme) x=-ramme;
if(y<-ramme) y=height+ramme; if(y>height+ramme) y=-ramme;


// remove them if mouse moves fast
if(stuck && (abs(mouseX-pmouseX)>100 || abs(mouseY-pmouseY)>50)) {
stuck=false;
angle = degrees(mouseDirection())-90;
if(abs(mouseX-pmouseX)0.3) speed -= 0.01;

if(stuck) {
x = x + (mouseX-pmouseX);
y = y + (mouseY-pmouseY);
dotsize += 0.05;
klumpsize -=0.0015;

}
else {
if(dist(x,y,mouseX, mouseY)klumpsize-10) {
// AVSTANDEN MELLOM DOT OG KLUMP AVGJØR FART MOT KLUMP
x = x + (mouseX-x)/155;
y = y + (mouseY-y)/155;

}
else {
// CALCULATE POSITION
x = x + cos(radians(angle))*speed;
y = y + sin(radians(angle))*speed;


// CALCULATE ANGLE & ANGLE CHANGE
angle=angle+angleDir;
angleDir=angleDir+random(-0.3,0.3); // CHANGE
if(angleDir<-3) angleDir=-3; // MIN CHANGE else if(angleDir>3) angleDir=3; // MAX CHANGE


// FLIP DIRECTION EVER 50.FRAME
if(frameCount%50==0) angleDir=-angleDir;


}
// if close, make it stick
if(dist(x,y,mouseX, mouseY)<42>30)
stuck = true;

}

if(stuck == false && klumpsize<60>20) {
dotsize -= 0.06;
klumpsize +=0.003;
}


fill(255,0,0,180);
strokeWeight(10);
stroke(255,0,0,90);
ellipse(x,y,dotsize,dotsize);
}
}

float mouseDirection() {
return atan2(mouseX-pmouseX, mouseY-pmouseY);
}

void mousePressed(){


setup();
}


No comments: