Glut - Objekt verschieben
-
Wo wird denn fetsgelegt, welchen Wert TYPE hat?
-
nein daran liegt es nicht, es gibt rote und blaue würfel, wenn ich
float n = -2.5f; for(int i=0; i<myVec.size();i++) { //cout << "Icon type: " << myVec.at(i)->getType() << endl; glPushMatrix(); glLoadIdentity(); glTranslatef(1.0f ,0,n); myVec.at(i)->draw(); n += 0.01f; glPopMatrix(); }mache. Irgendwas stimmt nur mit der Positionierung nicht, wenn ich den x Wert verändere
-
also bei 1.0 gehts oder wie?
Weil n ist ja an der Stelle von z.
Hast du vielleicht mal nen Screenshot?
-
Ja,
so siehts bei glTranslatef(n ,0,1.0f); aus:
www.captured-dreams.de/temp/2.jpg
und so bei glTranslatef(1.0f ,0, n);
-
n = -2,5?
Schonmal mit n=2,5 versucht? Weil minus heißt ja bei z, dass du es sozusagen aus in Richtung aus dem Bildschirm raus verschiebst.
-
Powerpaule schrieb:
n = -2,5?
Schonmal mit n=2,5 versucht? Weil minus heißt ja bei z, dass du es sozusagen aus in Richtung aus dem Bildschirm raus verschiebst.Nein! Die Kamera schaut in OpenGL standardmäßig entlang der negativen Z-Achse.
-
David_pb schrieb:
Nein! Die Kamera schaut in OpenGL standardmäßig entlang der negativen Z-Achse.
Stimmt, hab ich was verdreht...
aber wird wohl trotzdem daran liegen: glTranslatef(n ,0,1.0f);
-> z > 0, also hinter der Kamera
-
Stimmt, daran lag es! Vielen Dank!
Aber jetzt stellt sich eine neue Frage:
Ich habe mehrere Objekte auf dem Schirm (diese Würfel).Wie kann man jetzt, nachdem alle gezeichnet sind, nur einen einzelnen verschieben?
Rotieren klappt per glRotatef(rtri2, 1.0f,0.0f,0.0f); , aber das Verschieben halt nicht. Jemand eine Idee?
-
Du musst dir für diesen Würfel die Translation eben extra merken.
-
Jop hat auch geklappt.
Nochmals danke