robo.spiel
Class Transformation

java.lang.Object
  extended by robo.spiel.Transformation

public class Transformation
extends java.lang.Object

Stellt die Koordinatenumwandlungen zur Verfügung.

Das Spiel verwendet drei Koordinatensysteme

Pixelkoordinaten

Diese Koordinaten, aus DPoints bestehend, geben Koordinaten im Webcambild an. Die Verwendung von doubles ist sinnvoll, um die Aufsummierung von Rundungsfehlern zu vermeiden.

Spielfeldkoordinaten

Diese Koordinaten, aus DPoints bestehend, repräsentieren das Raster des Spielfeldes. Der Spielstein oben links hat die Position (0,0), alle Spielsteine sind an ganzzahligen Positionen (was das Umrechenen erleichtert)

Spielpositionen

Bestehen aus einem int. 0 bis 23 sind die Positionen, 0 bis 9 mit dem Offest OffsetWeiss bzw. OffsetSchwarz sind die Speicherstellen auf der Abstellfläche.

Initialisierung

Zu Beginn muss die Klasse mittels initialize(DPoint, DPoint, DPoint) initialisiert werden Hierbei werden drei auf dem Webcambild erkannte Punkte übergeben, aus denen die Transformationsdaten errechnet werden.

Author:
matthiaskummerer

Field Summary
static int OffsetSchwarz
          Offset für die Spielpositionen im schwarzen Speicher (OffsetSchwarz|0..OffsetSchwarz|8)
static int OffsetWeiss
          Offset für die Spielpositionen im weißen Speicher (OffsetWeiss|0..OffsetWeiss|8)
static double XPosSpeicherSchwarz
           
static double XPosSpeicherWeiss
          x-Koordinate des wßi§en Speichers, in Spielfeldkoordinaten.
 
Constructor Summary
Transformation()
           
 
Method Summary
static void initialize(DPoint p1, DPoint p2, DPoint p3)
          Initialisiert die Transformation
static boolean initialized()
          gibt an, ob die Transformation überhaupt schon mal initialisiert wurde
static void konv1(DPoint A)
          Testmethode
static void main(java.lang.String[] args)
          Testmethode
static int pixelToPos(DPoint p)
           
static DPoint pixelToSpielfeld(DPoint p)
           
static DPoint posToPixel(int p)
           
static DPoint posToSpielfeld(int p)
          Rechnet eine Spielposition in Spielfeldkoordinaten um.
static DPoint spielfeldToPixel(DPoint p)
           
static int spielfeldToPos(DPoint p)
          Rechnet Spielfeldkoordinaten in eine Spielposition um.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XPosSpeicherWeiss

public static final double XPosSpeicherWeiss
x-Koordinate des wßi§en Speichers, in Spielfeldkoordinaten.

See Also:
Constant Field Values

XPosSpeicherSchwarz

public static final double XPosSpeicherSchwarz
See Also:
Constant Field Values

OffsetWeiss

public static final int OffsetWeiss
Offset für die Spielpositionen im weißen Speicher (OffsetWeiss|0..OffsetWeiss|8)

See Also:
Constant Field Values

OffsetSchwarz

public static final int OffsetSchwarz
Offset für die Spielpositionen im schwarzen Speicher (OffsetSchwarz|0..OffsetSchwarz|8)

See Also:
Constant Field Values
Constructor Detail

Transformation

public Transformation()
Method Detail

initialize

public static void initialize(DPoint p1,
                              DPoint p2,
                              DPoint p3)
Initialisiert die Transformation

Parameters:
p1 - Punkt im Eck
p2 - Zweiter Punkt von E1, auf halber Höhe
p3 - Zweiter Punkt von E2

spielfeldToPixel

public static DPoint spielfeldToPixel(DPoint p)

pixelToSpielfeld

public static DPoint pixelToSpielfeld(DPoint p)

posToSpielfeld

public static DPoint posToSpielfeld(int p)
Rechnet eine Spielposition in Spielfeldkoordinaten um. Liefert null, falls ein ungültiger Index übergeben wurde.

Parameters:
p -
Returns:

spielfeldToPos

public static int spielfeldToPos(DPoint p)
Rechnet Spielfeldkoordinaten in eine Spielposition um.

Parameters:
p -
Returns:
-1, falls ungültige Position

pixelToPos

public static int pixelToPos(DPoint p)

posToPixel

public static DPoint posToPixel(int p)

konv1

public static void konv1(DPoint A)
Testmethode

Parameters:
A -

main

public static void main(java.lang.String[] args)
Testmethode

Parameters:
args -

initialized

public static boolean initialized()
gibt an, ob die Transformation überhaupt schon mal initialisiert wurde