Angle d'un vecteur
Ce wiki a été archivé en 2018.
Le nouveau wiki se trouve à: ressources.labomedia.org Les fonctionnalités sont désactivées: vous pouvez faire une recherche sur Google site:https://wiki.labomedia.org et découvrir La Labomedia. |
De Centre de Ressources Numériques - Labomedia
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;
}
}