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
360
Grad oderMath.PI * 2
Bogenmaß. - Die Hälfte dieser Werte
Math.PI
180
Grad oderMath.PI
Bogenmaß. - Ein Viertel ist dann
90
Grad oderMath.PI / 2
Radiant.
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