ActionScript 3
Mit Geometrie arbeiten
Suche…
Den Winkel zwischen zwei Punkten ermitteln
Verwendung der Vanillemathematik:
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);
Verwenden eines neuen Vektors, der die Differenz zwischen den ersten beiden darstellt:
var difference:Point = to.subtract(from);
var angle:Number = Math.atan2(difference.y, difference.x);
Hinweis:
atan2()gibt den Bogenmaß und nicht den Grad zurück.
Den Abstand zwischen zwei Punkten ermitteln
Verwendung der Vanillemathematik:
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);
Eingebaute Funktionalität von Point :
var distance:Number = to.subtract(from).length; // or
var distance:Number = Point.distance(to, from);
Radiant in Grad umrechnen
var degrees:Number = radians * 180 / Math.PI;
Grad in Radiant umrechnen
var radians:Number = degrees / 180 * Math.PI;
Der Wert eines Kreises in Grad und Bogenmaß
- Ein ganzer Kreis ist
360Grad oderMath.PI * 2Bogenmaß. - Die Hälfte dieser Werte
Math.PI180Grad oderMath.PIBogenmaß. - Ein Viertel ist dann
90Grad oderMath.PI / 2Radiant.
Um ein Segment als Prozentsatz eines ganzen Kreises in Bogenmaß zu erhalten:
function getSegment(percent:Number):Number {
return Math.PI * 2 * percent;
}
var tenth:Number = getSegment(0.1); // One tenth of a circle in radians.
Einen Punkt entlang eines Winkels verschieben
Angenommen, Sie haben den Winkel, den Sie verschieben möchten, und ein Objekt mit x und y Werten, die Sie verschieben möchten:
var position:Point = new Point(10, 10);
var angle:Number = 1.25;
Sie können sich mit Math.cos entlang der x Achse Math.cos :
position.x += Math.cos(angle);
Und die y Achse mit Math.sin :
position.y += Math.sin(angle);
Sie können das Ergebnis von Math.cos und Math.sin mit der Entfernung multiplizieren, die Sie zurücklegen möchten:
var distance:int = 20;
position.x += Math.cos(angle) * distance;
position.y += Math.sin(angle) * distance;
Hinweis: Der Eingabewinkel muss im Bogenmaß liegen.
Stellen Sie fest, ob sich ein Punkt innerhalb eines Rechteckbereichs befindet
Sie können mit Rectangle.containsPoint() testen, ob sich ein Punkt innerhalb eines Rechtecks befindet:
var point:Point = new Point(5, 5);
var rectangle:Rectangle = new Rectangle(0, 0, 10, 10);
var contains:Boolean = rectangle.containsPoint(point); // true