000
13.11.2008, 23:22 Uhr
~Dirk_
Gast
|
Hallo zusammen,
im Prinzip möchte ich auf einer 2D-Weltkarte Linien zeichnen. Das Problem ist der x-Wert. Der y-Wert spielt keine Rolle bei diesem Problem.
Mein Koordinatensystem wähle ich mit glOrtho immer so, dass min_x dem kleinsten x-Wert eines Anfangspuntkes einer Linie entspricht und max_x dem größten x-Wert einer Linie entspricht.
Beispiele: (nur x-Werte werden hier genannt, da der y-Wert keine Rolle spielt)
Beispiel 1: Linie 1: x = 5 ..7 Linie 2: x = 4 ..6
In diesem Fall ist min_x = 4 und max_x=7. Es gibt keine Probleme das Koordinatensystem zu definieren.
Beispiel 2: Linie 1: x = 178 ..-179 (Datumsgrenze wird hier überschritten, Linie hat eine Länge von 3) Linie 2: x = -178..-170
In diesem Fall habe ich ein Problem. Wenn ich min_x und max_x nach dem gleichem Schema setze wie bei Beispiel 1 dann erhalte ich für min_x = -179 und für max_x = 178. In diesem Falle ist mein definiertes Koordinatensystem riesig und ich sehe die 2 Linien kaum oder sie werden völlig falsch gezeichnet. Das ist natürlich nicht das Ziel.
Das große Problem ist hier, dass die erste Linie über die Datumsgrenze geht. Eigentlich ist mein min_x = 178 und mein max_x = -170. Das heißt, dass ich gerne ein Koordinatensystem mit einer Breite von 12 definieren würde.
Wie kann ich OpenGL oder der SW irgendwie beibringen, dass nach 180 nicht 181, sondern -179 kommt und dass 180 dasselbe ist wie -180
Brauche ich evtl. 2 Koordinatensysteme, falls eine Linie die Datumsgrenze überschreitet?
Leider habe ich keine Ahnung wie ich das Problem lösen könnte.
Fantastisch wäre es sogar, wenn man nicht auf einer Ebene zeichnen würde wie bisher, sondern wenn man direkt auf eine Kugel zeichnen könnte.
Ich bin für alle Hinweise dankbar, da ich bei diesem Problem leider nicht wirklich weiterkomme.
Vielen Dank und viele Grüße Dirk |