Processing – Exercício 2 (Animação)

//Aqui estão os códigos para a minha imagem animada, se passarem com o indicador do rato na imagem as elipses pretas afastam-se.
float px[];
float py[];
//número de particulas
int num_particles = 400;
void setup () {
  size (600, 600);
   px = new float[num_particles];
    py = new float[num_particles];
    
    for (int i = 0; i < num_particles; i++) {
        px[i] = random (width);
        py[i] = random (height);
    }
}
void draw () {
  background (random (255));
  frameRate (70);
  noFill ();
  //ellipse e arcos aleatórios
  stroke (random (255));
  strokeWeight (random (55));
  ellipse (width/2, height/2, 5,5);
  arc (width/2, height/2, 75, 75, HALF_PI, PI+HALF_PI);
  arc (width/2, height/2, 75, 75, TWO_PI-PI+HALF_PI, TWO_PI+HALF_PI);
  arc (width/2, height/2+25, 140, 140, 0, PI);
  arc (width/2, height/2-25, 140, 140, PI, TWO_PI);
  arc (width/2-25, height/2, 300, 300, HALF_PI, PI+HALF_PI);
  arc (width/2+25, height/2, 300, 300, TWO_PI-PI+HALF_PI, TWO_PI+HALF_PI);
  arc (width/2, height/2+25, 460, 460, 0, PI);
  arc (width/2, height/2-25, 460, 460, PI, TWO_PI);
  arc (width/2-25, height/2, 720, 720, HALF_PI, PI+HALF_PI);
  arc (width/2+25, height/2, 720, 720, TWO_PI-PI+HALF_PI, TWO_PI+HALF_PI);
  //elipse e arcos normais
  fill (0, 0, 0);
  stroke (0, 0, 0);
  strokeWeight (random (10));
  ellipse (width/2, height/2, 5, 5);  
  noFill ();
  arc (width/2, height/2, 75, 75, HALF_PI, PI+HALF_PI);
  arc (width/2, height/2, 75, 75, TWO_PI-PI+HALF_PI, TWO_PI+HALF_PI);
  arc (width/2, height/2+25, 140, 140, 0, PI);
  arc (width/2, height/2-25, 140, 140, PI, TWO_PI);
  arc (width/2-25, height/2, 300, 300, HALF_PI, PI+HALF_PI);
  arc (width/2+25, height/2, 300, 300, TWO_PI-PI+HALF_PI, TWO_PI+HALF_PI);
  arc (width/2, height/2+25, 460, 460, 0, PI);
  arc (width/2, height/2-25, 460, 460, PI, TWO_PI);
  arc (width/2-25, height/2, 720, 720, HALF_PI, PI+HALF_PI);
  arc (width/2+25, height/2, 720, 720, TWO_PI-PI+HALF_PI, TWO_PI+HALF_PI); 
  fill (0, 0, 0);
//"insectos" elipses pretas
  for (int i = 0; i < num_particles; i = i+1) {
        px[i] = constrain (px[i] + random (-10, 10), 0, width);
        py[i] = constrain (py[i] + random (-10, 10), 0, height);
        
  if (dist (px[i], py[i], mouseX, mouseY) < 80) {
            float vx = (px[i] - mouseX);
            float vy = (py[i] - mouseY);
            
            px[i] = px[i] + vx;
            py[i] = py[i] + vy;
        }
        ellipse (px[i], py[i], random (25), random (25));
  }
}

Captura de ecrã 2014-05-19, às 11.23.20

frame da animação

 

Anúncios

One comment

  1. Gostei muito deste exercício.
    A preferência monocromática sugere uma matéria metálica quiçá, magnética. Apenas o preto e o branco em prol de um chorrilho de cores revela audácia, confiança e um acrescento ao conteúdo pela simplicidade. A intenção hipnótica através da cintilação, parece-me funcionar muito bem.

    Gosto especificamente das partículas em elipse que rodam sobre si próprias e, da interacção que permites ao observador. Que justifica o efeito hipnótico do teu exercício.

    As partículas, um dos exercícios sugeridos como referência, terá sido o que maior interesse me despertou e por isso também o utilizei na minha Composição Dinâmica. Desafio-te a veres! ;)

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s