10 de mai. de 2009

Mais um no Processing

uffs, último post do dia... e aqui está meu segundo trabalho no Processing, do qual posso, com sinceridade, me orgulhar. (que emoção...) Foi feito de modo a gerar uma certa interatividade com o usuário. No começo, era para ser um pêndulo, mas, do modo como saiu, fiz umas pequenas modificações e acabou se tornando uma pipa maluca. Meio acidental, mas acabou ficando bem melhor.

Eis a fórmula mágica:

void setup(){
size(400,400);
frameRate(15);
smooth();

}

int[] x = new int[10]; //introduzindo um array x, feito de 10 valores, numerados de 0 a 9
int[] y = new int[10]; //mesma coisa com um array y

void circulos() //criando uma função circulos
{
for (int a = 0; a <= 9; a++){
ellipse(x[a],y[a],a*6,a*6);
}
}

void retangulos(){ //mesma coisa, com retangulos
for (int a = 0; a <= 9; a++){
rect(x[a],y[a],a*5,a*5);
}
}

void draw(){
background(0);
fill(255);
rect(0,0,width/2,height); //fazendo o fundo preto-e-branco
strokeWeight(2);
stroke(mouseX,(mouseX+mouseY)/2,mouseY,100);
fill(mouseX,(mouseX+mouseY)/2,mouseY,40); //mudando a cor de acordo com a posiçao do mouse
if (mouseX <= width/2){ //se o mouse estiver a esquerda
x[9] = mouseX;
y[9] = mouseY;
circulos();
for (int i = 0; i < 9; i = i + 1){
x[i] = x[i+1];
y[i] = y[i+1]; //para fazer com que um circulo siga o outro, meio atrasado - usando arrays
}
}
else { //se estiver a direita
x[9] = mouseX;
y[9] = mouseY;
retangulos();
for (int i = 0; i < 9; i = i + 1){
x[i] = x[i+1];
y[i] = y[i+1];
}
}
stroke(120,120,120,150);
line(width/2,height,mouseX,mouseY); //para fazer a "linha da pipa"
}

Cris Gibson C. Gonçalves

Nenhum comentário:

Postar um comentário