Die Point Klasse ist in AS3 hinzugekommen. Da man in Flash mit einem Koordinatensystem arbeitet kann man mit Methoden und Eigenschaften der Point Klasse einige nützliche Berechnungen anstellen, um Instanzen zu positionieren. Ein Point hat einen x und einen y Wert.
Siehe auch die AS3 Referenz Point
Hier werden die meisten Eigenschaften und Methoden der Point Klasse an Beispielen erklärt. Siehe dazu auch die Referenz von Adobe. In diesem Beispiel geht es um: length, distance, normalize, add, clone, offset, equals
Offset Wert berechnen
Mit der polar() Methode lassen sich viele Berechnungen, die etwas mit kreisförmiger Anordnung zu tun haben leichter berechnen. Einige ähnliche Beispiele, die auf andere Art berechnet werden, findet ihr inmeinen AS2 Tipps Trigonometrie.
Bei der Beschäftigung mit der Point Klasse, hatte ich noch einige Ideen für Methoden, die es nicht gibt. Deswegen habe ich mir eine Klasse PPPoint erstellt, über die man 2 statische Methoden aufrufen kann.
winkel(p1:Point, p2:Point):Number;
gibt den Winkel zurück, den die beiden Punkte innerhalb
des Koordinatensystems zueinander einnehmen
p1 bildet den Nullpunkt
--------------------------------------------------------------
turnedPoint(p1:Point, p2:Point, winkel:Number):Point
p1 ist der Nullpunkt, p2 ein zweiter Punkt
beide Punkte nehmen einen Winkel im Koordinatensystem ein
es wird als dritter Parameter ein Winkel erwartet
Wenn man p2 bei gleichem Radius um p1 um diesen Winkel weiterdreht,
ensteht eine neue Position
es wird ein neuer Punkt zurückgegeben der an dieser gedrehten Position liegt
--------------------------------------------------------------
Der Aufruf der statischen Funktionen in der fla
var P1:Point = new Point(0, 0); var P2:Point = new Point(200, 0); var P3:Point = PPPoint.turnedPoint(P1,P2,45); trace(P3); var winkel:Number= PPPoint.winkel(P1, P3); trace(winkel); trace(Point.distance(P1,P3));
Die Klasse PPPoint
package { /* copyright Michael Albers, Dortmund, www.pastorpixel.de Die PPPoint Klasse ist eine Formelsammlung, welche einige Funktionen mit Punkten bereitstellt. -------------------------------------------------------------- winkel(p1:Point, p2:Point):Number; gibt den Winkel zurück, den die beiden Punkte innerhalb des Koordinatensystems zueinander einnehmen p1 bildet den Nullpunkt -------------------------------------------------------------- turnedPoint(p1:Point, p2:Point, winkel:Number):Point p1 ist der Nullpunkt, p2 ein zweiter Punkt beide Punkte nehmen einen Winkel im Koordinatensystem ein es wird als dritter Parameter ein Winkel erwartet Wenn man p2 bei gleichem Radius um p1 um diesen Winkel weiterdreht, ensteht eine neue Position es wird ein neuer Punkt zurückgegeben der an dieser gedrehten Position liegt -------------------------------------------------------------- */ import flash.geom.Point; public class PPPoint { //---------------------------------------------------------------------- public function PPPoint() { } //---------------------------------------------------------------------- public static function winkel(p1:Point, p2:Point):Number { var b:Number=p2.x-p1.x; var a:Number=p2.y-p1.y; var alphaWinkel:Number=(Math.atan(a/b)/Math.PI)*180; return alphaWinkel; } //---------------------------------------------------------------------- public static function turnedPoint(p1:Point, p2:Point, w:Number):Point { var radius:Number=Point.distance(p1,p2); var alphaWinkel:Number=PPPoint.winkel(p1,p2); var zielWinkel:Number=alphaWinkel+w; var alphaSin:Number=Math.sin(Math.PI/180*zielWinkel); var alphaCos:Number=Math.cos(Math.PI/180*zielWinkel); var b:Number=alphaCos*radius+p1.x; var a:Number=alphaSin*radius+p1.y; var zielPunkt:Point=new Point(b,a); return zielPunkt; } //---------------------------------------------------------------------- } }