Ricerca…


Ottenere l'angolo tra due punti

Usando la matematica di vaniglia:

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

Usando un nuovo vettore che rappresenta la differenza tra i primi due:

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

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

Nota: atan2() restituisce i radianti, non i gradi.

Ottenere la distanza tra due punti

Usando la matematica di vaniglia:

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

Utilizzo della funzionalità integrata di Point :

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

Convertire i radianti in gradi

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

Conversione di gradi in radianti

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

Il valore di un cerchio in gradi e radianti

  • Un intero cerchio è di 360 gradi o Math.PI * 2 radianti.
  • La metà di questi valori segue per essere di 180 gradi o di Math.PI
  • Un quarto è quindi 90 gradi o Math.PI / 2 radianti.

Per ottenere un segmento come percentuale di un intero cerchio in radianti:

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

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

Spostare un punto lungo un angolo

Supponendo di aver l'angolo che desideri muoversi dentro e un oggetto con x e y i valori che si desidera spostare:

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

È possibile spostarsi lungo l'asse x con Math.cos :

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

E l'asse y con Math.sin :

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

Ovviamente puoi moltiplicare il risultato di Math.cos e Math.sin per la distanza che vuoi percorrere:

var distance:int = 20;

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

Nota: l'angolo di input deve essere in radianti.

Determina se un punto si trova all'interno di un'area rettangolare

Puoi verificare se un punto si trova all'interno di un rettangolo usando 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow