» »

[c++, OpenGL] za koliko premakniti na levo da bo v celoti viden

[c++, OpenGL] za koliko premakniti na levo da bo v celoti viden

goranv ::

V OpenGL bi rad naredil menu ( sirine 1.0f in visine 4.0f ) in se bo nahajal levo zgoraj. Kako izracunati za koliko je treba ta menu premakniti v levo in gor, da bo se v celoti viden ( da nebi bil prevec levo ). To pozicijo lahko najdem rocno za npr. 800x600, ampak rad bi, da se ta pozicija menuja izracuna avtomatsko glede na resolucijo okna. Da ne bom za vsako resolucijo okna rocno iskal to pozicijo menuja.

pozicija kamera 0.0f, 0.0f, 0.0f

Senitel ::

Hočeš "2D" ali "3D" menu? Če prvo, potem ti ni treba nič računat in uganjat neke hude znanosti. Preklopiš v ortografsko projekcijo in rišeš z 2D verteksi.
klik

goranv ::

3D menu.

Senitel ::

Ok, še zmer nisem čisto ziher kaj hočeš. Če si v 3D in imaš kamero, potem ti tako ali tako ni treba preračunavat koordinat... Tako da malo matematike:
Object, view, projection matrike spravijo tvoje vertexe v clip space. Clip space je od -1 do 1 po X, Y in Z. Torej, če nastaviš matrike na identiteto in narišeš quad od (-1, 0), (0, 0), (0, 1) do (-1, 1) pokriješ levi zgornji kvadrant ekrana.
Če nastaviš ortho matriko, ti ta space raztegne na recimo 0,0 do 800, 600.
Če hočeš 3D menu, potem nastaviš projekcijsko matriko. Kamere ne rabiš.
Hope it helps.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Matlab problem

Oddelek: Pomoč in nasveti
281441 (865) bluefish
»

DirectX - težavica

Oddelek: Programiranje
141263 (996) Senitel
»

[c++]OpenGL izris kvadrata

Oddelek: Programiranje
81271 (1131) Mavrik
»

OpenGL problem

Oddelek: Programiranje
212485 (2051) Gundolf

Več podobnih tem