Point

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

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

Point / Point.interpolate()

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

Point.subtract()

Offset Wert berechnen

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

Point.polar()

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.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

PPPoint

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;
		}
		
		//----------------------------------------------------------------------

	}
}