Anuncios Google

[AYUDA]girar objetos si alterar el plano cartesiano en Opengl

estoy haciendo un juego de naves geometric war, mi problema es que quiero girar la nave de acuerdo a la posicion en la que esta el mouse para que apunte a este, esta parte ya la tengo hecha,

pero al usar glrotatef para hacer el giro como ya saben no me gira la figura sino todo el plano X Y, mi pregunta es como hago para que solo gire la figura sin alterar el sistema de cordenas.

         glRotatef(angulo,0,0,1);
        glBegin(GL_TRIANGLES);
        glColor3f(0.0f, 1.0f, 0.0f);
        glVertex3i(x,y+alto/2 ,0); //la punta
        glVertex3i(x-ancho/2,y-alto/2,0);
        glVertex3i(x+ancho/2,y-alto/2,0);
        glEnd();

este es el codigo de la nave (el glTranslatef esta un poco mas arriba) que como podan ver es un triangulo, X Y es el centro del triangulo y tambien el eje de giro


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Andresmargar

Usa

Pones glPushMatrix() (guardas la matriz) antes de rotar el objeto y glPopMatrix() (la restauras) cuando termines de dibujar el objeto.

Saludos!


~Actualmente estudiando Ingeniería de las Tecnologías de la Telecomunicación en la Escuela de Ingenieros~

gracias

ya me funciona perfectamente, pero cual es la diferencia entre glLoadIdentity(); glPopMatrix() glPushMatrix() porque despues de leer algo parece que hacen mas o menos lo mismo detodos modos gracias

glLoadIdentity lo que hace es

glLoadIdentity lo que hace es hacer de la matriz actual la matriz identidad (la hace "nula").
glPushMatrix pone la matriz con la que se está trabajando en el stack (la pila), por lo tanto los cambios que hagas después de llamar a glPushMatrix se harán en otra matriz, y por último glPopMatrix hace el proceso contrario a Push, es decir coge la matriz del stack.


Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.