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
Aller à : navigation, rechercher

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;
  }
}