Recherche…


Obtenir l'angle entre deux points

Utiliser les mathématiques de la vanille:

var from:Point = new Point(100, 50);
var to:Point = new Point(80, 95);

var angle:Number = Math.atan2(to.y - from.y, to.x - from.x);

En utilisant un nouveau vecteur représentant la différence entre les deux premiers:

var difference:Point = to.subtract(from);

var angle:Number = Math.atan2(difference.y, difference.x);

Note: atan2() renvoie les radians, pas les degrés.

Obtenir la distance entre deux points

Utiliser les mathématiques de la vanille:

var from:Point = new Point(300, 10);
var to:Point = new Point(75, 40);

var a:Number = to.x - from.x;
var b:Number = to.y - from.y;

var distance:Number = Math.sqrt(a * a + b * b);

En utilisant la fonctionnalité intégrée de Point :

var distance:Number = to.subtract(from).length; // or
var distance:Number = Point.distance(to, from);

Conversion de radians en degrés

var degrees:Number = radians * 180 / Math.PI;

Conversion de degrés en radians

var radians:Number = degrees / 180 * Math.PI;

La valeur d'un cercle en degrés et radians

  • Un cercle entier est de 360 degrés ou Math.PI * 2 radians.
  • La moitié de ces valeurs est Math.PI 180 degrés ou Math.PI radians.
  • Un quart est alors de 90 degrés ou Math.PI / 2 radians.

Pour obtenir un segment en pourcentage d'un cercle entier en radians:

function getSegment(percent:Number):Number {
    return Math.PI * 2 * percent;
}

var tenth:Number = getSegment(0.1); // One tenth of a circle in radians.

Déplacement d'un point selon un angle

En supposant que vous avez l'angle que vous souhaitez déplacer et un objet avec des valeurs x et y vous souhaitez déplacer:

var position:Point = new Point(10, 10);
var angle:Number = 1.25;

Vous pouvez vous déplacer sur l'axe des x avec Math.cos :

position.x += Math.cos(angle);

Et l'axe y avec Math.sin :

position.y += Math.sin(angle);

Vous pouvez bien sûr multiplier le résultat de Math.cos et Math.sin par la distance à parcourir:

var distance:int = 20;

position.x += Math.cos(angle) * distance;
position.y += Math.sin(angle) * distance;

Remarque: L'angle d'entrée doit être en radians.

Déterminer si un point est à l'intérieur d'un rectangle

Vous pouvez tester si un point se trouve dans un rectangle à l'aide de Rectangle.containsPoint() :

var point:Point = new Point(5, 5);
var rectangle:Rectangle = new Rectangle(0, 0, 10, 10);

var contains:Boolean = rectangle.containsPoint(point); // true


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow