Coordinates

(Barbara)

Die fertigen Level befinden sich in einem dreidimensionalen Double-Koordinatensystem und werden um dessen Nullpunkt herum aufgebaut. Die Zeichenfläche besitzt jedoch ein zweidimensionales Integer-Koordinatensystem, dessen Ursprung sich an seiner linken oberen Ecke befindet. Da die Weite der Zeichenfläche 800 und die Höhe 600 beträgt, befindet sich der Ursprung unseres Levels im Editor also auf dem Punkt (400, 320). Außerdem muss der Raum in beiden Koordinatensystemen unterschiedlich skaliert werden. Während die Differenz in der Dimension kein Problem darstellt, da alle Räume die gleiche Höhe besitzen, gestaltet sich die Umrechnung zwischen den beiden Koordinatensystemen aufgrund der verschieden gelegenen Ursprünge, der Skalierung und der unterschiedlichen Mengen an Zahlenwerten als ausreichend umständlich, um eine eigene Klasse zu rechtfertigen, welche für ebenjene Umrechnungen zuständig ist. Objekte der Klasse Coordinates ersetzen die Points in den DrawableObjects. Die Klasse Coordinates besitzt als Attribute die ursprünglichen und aktuellen x- und y-Koordinaten des Punktes, den Winkel um den der Punkt gedreht wurde in Gradmaß (zu Beginn 0) und den Skalierungsfaktor. Außerdem sind diverse Konstruktoren vorhanden, die es ermöglichen, ein Coordinates-Objekt aus zwei Double-Werten oder aus einem weiteren Coordinates-Objekt zu erstellen und dem Objekt optional einen neuen Winkel mitzugeben. Außerdem gibt es Methoden zur Rotation, Skalierung und Translation, sowie zur Invertierung der Koordinaten, zur Berechnung der Distanz zweier Coordinates zueinander, zur Addition der aktuellen x- und y-Positionen zweier Coordinates (Vektoraddition) und zur Berechnung der skalierten Integer-Koordinaten eines Coordinates-Objekts.

results matching ""

    No results matching ""