A la ferme du code heureux, des codes, des programmes, broutent en champ libre.
Angle, rayon, sinus et cosinus
Un petit programme en Processing qui montre comment faire se déplacer une forme en utilisant un vecteur de déplacement avec angle/rayon plutôt que x/y.

Par Benoît Espinola et Douglas Edric Stanley.

Your browser does not support the canvas tag.




float x, y; // x et y sont lees variables representants la position de notre forme.
float angle = 90; // angle represente la direction en degré vers laquelle se déplace la forme.
float rayon = 1.0; // rayon represente la distance du déplacement entre deux positions successives.

void setup(){

size(780, 200);
smooth();

// on place notre forme au centre du sketch.
x = width / 2;
y = height / 2;

angle = random(360); // l'angle de départ est choisi aléatoirement.
}

void draw() {

background(211);

angle += random(-3,5); // on change de quelques degrés notre angle de façon aléatoire.

// On calcul la nouvelle position x et y à partir de l'angle et du rayon.
// Où serons nous si à partir de notre position actuel on se déplace de 'rayon' dans la direction 'angle' ?
x += cos( radians(angle) ) * rayon;
y += sin( radians(angle) ) * rayon;

// boucler sur les bords de l'écran en profitant de l'effet de congruence (aka pacman)
x = (x + width) % width;
y = (y + height) % height;

// aller a la nouvelle position, tourner dans le sens de l'angle
translate(x, y);
rotate(radians(angle));

// dessiner un petit truc phallic
ellipse(0,0,10,10);
line(0,0,15,0);
}


Téléchargez le code Processing de AngleRayonSinusCosinus.pde