Je suis actuellement en train de me bruler les neurones sur un éditeur, permettant entre autres de modifier un visuel à la souris. De quoi devoir replonger dans nos bonnes vieilles notions de trigo.
J'en profite donc pour donner ici 2-3 astuces

Rotation d'un point

Pour passer d'un point (x, y) à un autre (x', y') en lui appliquant une rotation d'angle a, l'équation est la suivante:

        x' = x*cos(a) - y*sin(a)
        y' = x*sin(a) + y*cos(a)

Ce qui nous donne un petite méthode AS3:

public function rotatePoint(point : Point, angle : Number, isRadian : Boolean = false) : Point {
        if (ang == 0) return point.clone();
        var radAngle : Number = isRadian ? angle : angle * Math.PI / 180;
        var angleCos : Number = Math.cos(radAngle);
        var angleSin : Number = Math.sin(radAngle);
        return new Point(point.x * angleCos - point.y * angleSin, point.x * angleSin + point.y * angleCos);
}

Notez que l'on peut passer cette méthode un angle en degré (par défaut) ou en radians.

Angle fait par un vecteur

L'AS3 nous fournit une méthode toute prête: Math.atan2. Elle prend en paramètre les coordonnées du vecteur (j'utilise un point dans l'exemple) et retourne un angle en radian (d'où le flag isRadian de la méthode précédente).
Notez bien que la coordonnée 'y' est le premier argument (chez moi, FDT m'affiche 'x' en premier, je me suis fait avoir au début)

var vector : Point = new Point(mouseX, mouseY);
var angRadian : Number = Math.atan2(vector.y, vector.x);

Normaliser un angle

Selon les besoins, il peut être nécessaire d'utiliser systématiquement un angle entre 0 et 360, ou entre -180 et 180. Avec les modulos, cela peut se faire facilement:

// Get a random number between -1500 and 1500
var angle : Number = Math.random() * 3000 - 1500;

// Normalize angle between 0 and 360
var angleIn360 : Number = ((angle % 360) + 360) % 360;
// Normalize angle between -180 and 180
var angleIn180 : Number = ((angle % 360) + 540) % 360 - 180;

---

Voilà pour les ch'tites astuces de l'oncle LAlex :P