Angle d'un vecteur
De Centre de Ressources Numériques - Labomedia
Révision de 3 novembre 2017 à 20:40 par Mushussu (discussion | contributions)
Dans Processing, il existe la méthode heading() de PVector pour déterminer l'angle d'un vecteur, mais les valeurs ne sont pas intuitives. Voici deux méthodes permettant d'avoir des valeurs progressant de 0 à 2 * PI :
PVector v;
void setup( ) {
size(400, 400);
v = new PVector(0, 0);
stroke(255, 0, 0);
fill(255, 0, 0);
}
void draw() {
background(255);
text(degrees(angleHoraire(v.heading())), 20, 30);
v.set(mouseX - width / 2, mouseY -height / 2);
v.normalize();
v.mult(100);
translate(width / 2, height / 2);
line(0, 0, v.x, v.y);
}
float angleTrigonometrique(float a) {
if (a < 0) {
return -a;
} else {
return TWO_PI - a;
}
}
float angleHoraire(float a) {
if (a < 0) {
return TWO_PI + a;
} else {
return a;
}
}