Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » OpenGL » positionierung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.09.2009, 11:06 Uhr
cmos



Hallöchen, ich habe ein kleines Problem.
Ich zeichne ein Koordinatensystem, 3 Pfeile und die Buchstaben daran,
x,y und z.

Ich schalte dafür in den Ortho Modus mit glOrtho


C++:
glOrtho(-1.0, +1.0, -1.0, +1.0, 0.0, 5.0);



so kann ich ganz eifnach sagen mit glTranslated in welcher Ecke ich das
zeichnen möchte. Da ich das Koordinatensystem unten links zeichne, so wie in Blender
als Beispiel.

Wie aber kann ich das im "normalen" Mode dahin positionieren ? Das PRoblem ist nämlich, wenn ich in den Fullscreenmodus wechsle ist das Koordinatensystem nicht mehr unten links sondern noch ein Stück weiter verrückt. Bei glOrtho bleibt es auch im Fullscreen oder bei anderer
Fenstergröße an der selben Position.

Grüße,
cmos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.09.2009, 18:39 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich mach das ganze z.b immer so:


C++:
    // Viewport mit widthxheight setzen
    glViewport(0, 0, screen_width, screen_height);

        // Orthogonale Matrix erstellen
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    // ... und laden
    glOrtho(0,screen_width,0,screen_height,-100,100);

    // 0; 0 soll obere linke Ecke sein
    glRotated(180,1,0,0);
    glTranslated(0,-screen_height,0);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.09.2009, 21:45 Uhr
cmos



Hallo,
so ähnlich hab ich das auch gemacht, aber ohne das ich den Viewport gesetzt habe.
Bei Ortho habe ich woben geschrieben einfach -1 und 1 genommen. Problem ist,
dass es nicht gleich aussieht wie in der normalen Darstellung ? Kann das daran
liegen, dass ich das mit -1 und 1 in Ortho gesetzt habe, anstatt die Auflösung zunehmen,
das das Seitenverhältnis nicht mehr stimmt ? Sonst könnt ich mir keinen anderen
Grund vorstellen. Naja, außer das es halt eine andere Projektionsart ist. Aber anders weiß ich nicht, wie ich das wirklich so genau setzen kann.

Grüße,
cmos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.09.2009, 22:22 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja du hast eine parallelprojektion eben (daher ja Ortho)

du solltest deinen viewport so setzen, damit opengl weiß, auf welche fläche er das denn projezieren soll. Ich habe eben dann z.b eine 800x600-"Arbeitsfläche" du kannst da natürlich eine -1 bis 1 arbeitsfläche genauso verwenden - nur ist dann halt bei einem nicht quadratischem viewport x -0.5 und y -0.5 nicht dasselbe, sondern halbiert halt z.b deinen viewport entsprechend jeweils.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ OpenGL ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: