spirale

mercredi 1 février 2012 | graphisme, programmation

Voici une portion de code processing (v1.5 et/ou v2) que l’on retrouve dans ma carte de vœux 2012, une étape nécessaire avant l’assemblage de « mes briques de code ».
Deux notions de maths sont utiles, le calcul de distances entre deux points et l’équation paramétrique d’un cercle mais pas besoin de comprendre rigoureusement pour s’amuser avec ces formules :)

float x, y; //position du point
float a; // une sorte de rayon
int tx, ty; // target du point

void setup() {
  size(640, 360);
  background(250);
  smooth();
  frameRate(500);
  x=400;
  y=200;
  tx=320;
  ty=180;

  strokeWeight(2);
  a=sqrt(sq(x-tx)+sq(y-ty)); // distance entre deux points (pythagore)
}

void draw() 
{
  fill(0, 10); //effet trace (motion trail)
  noStroke();
  rect(0, 0, 640, 360);
  stroke(255);
  point(x, y);

  // calcul de la position
  float angle=radians(frameCount*4); // à chaque image on bouge de 4°
  if (a>1) {
    x=cos(angle)*a+tx; // équation d'un cercle de rayon a et centre tx
    y=sin(angle)*a+ty; // 
    a=a-0.05; // réduction du rayon
  } else {
    x=tx;
    y=ty;
  }
}

tags : , , ,

Comments are closed.