SDL-Koordinaten umrechnen

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
joggel

Re: SDL-Koordinaten umrechnen

Beitrag von joggel »

HA... das weiß ich:
Nun ja...
Also, wenn Du eine Auflösung von, sagen wir mal, 800x600 hast, dann erstrecken sich die 800, in X-Richtung, von (-1) bis (+1). Und auf Y-Seite (+1) bis (-1).
Also immer um einen Betrag von 2!
(-1) => (+1) == 2 (X-Richtung)
(+1) => (-1) == 2 (Y-Richtung)

Angenommen Du möchtest dun herausbekommen, wo im OGL-KO-System sich der Punkt (200,100) befindet:
simple Verhältnisgleichung:
800/2 = 200/x ==> 2/800 = x/200;
x = 2*200/800;
x = 400/800 = 0.5;

das saleb für Y:
600/2 = 100/y ==> 2/600 = y/100;
y = 2*100/600;
y = 200/600 = 0.333;

Da oben Links im GL-KO-System ja (-1,1) ist, einfach die neuen Werte dazu addieren.
für X:
-1 + 0.5 = -0.5;
für Y:
1 + 0.33 = 1.33;

Sooo... ich hoffe mein Taschenrechner hat keine Fehler gemacht.
Zuletzt geändert von joggel am 25.08.2011, 00:09, insgesamt 1-mal geändert.
Youka
Beiträge: 28
Registriert: 20.04.2011, 18:24
Wohnort: Darmstadt

Re: SDL-Koordinaten umrechnen

Beitrag von Youka »

Mir stellt sich erstmal die Frage, ob du eine perspektivische oder orthogonale Sicht nutzt.
Im Falle von orthog. Sicht kannst du die Projektionsmatrix auch einfach mit glOrtho auf dein Fenster anpassen.
Yeti hat geschrieben:Auch der SDL-Punkt 640|480 entspricht dem OpenGL-Punkt -1|-1.
Meintest sicher 1|-1, nicht?
Youka
Beiträge: 28
Registriert: 20.04.2011, 18:24
Wohnort: Darmstadt

Re: SDL-Koordinaten umrechnen

Beitrag von Youka »

Yeti hat geschrieben:Aber wie meinst du das, dass ich mit glOrtho meine Sicht einfach anpassen kann?
Du solltest dich erstmal mit dem Matrix-System von OpenGL beschäftigen.
Vertices, die du angibst, werden nämlich, bevor die Pixel berechnet und alles in die Buffer geschickt wird, erst mit der Modelviewmatrix, dann mit der Projectionmatrix multipliziert. Dies erlaubt dir u.a. Transformationen, wie Rotation, Translation oder Skalierung, was du empfehlenswerterweise in der Modelviewmatrix definieren solltest, oder auch in einem anderen Koordinatengitter zu arbeiten, dass du in der Projectionmatrix definieren solltest, über Funktionen, wie glOrtho, gluPerspective oder gluOrtho2D.
Benutzeravatar
TGGC
Establishment
Beiträge: 569
Registriert: 15.05.2009, 18:14
Benutzertext: Ich _bin_ es.
Alter Benutzername: TGGC
Echter Name: Ich _bin_ es.
Wohnort: Mainz
Kontaktdaten:

Re: SDL-Koordinaten umrechnen

Beitrag von TGGC »

Ist doch alles nur eine Frage der Projektionsmatrix, und schon ist bei OGL da Koordinatensystem gleich.
Antworten