Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo Qt+OpenGl implementa operaciones de traslación y rotación de puntos tridimensionales

Cómo Qt+OpenGl implementa operaciones de traslación y rotación de puntos tridimensionales

La operación de traducción llama a la función glTranslatef

glTranslatef(12.3,0.,0.); - Traduce 12.3 junto con x

glTranslatef(0., 34.5, ,0.); -- Traducir 34.5 a lo largo de y

glTranslatef(0. , 0.0, 67.8); -- Traducir 67.8 a lo largo de z

La operación de rotación ajusta la función glRotated o glRotatef. , el primer parámetro 1 es un valor de ángulo de tipo entero y el segundo es de tipo flotante.

glRotated(3,1,0,0); -- Girar 3 grados alrededor del eje x

glRotated(3,0,1,0); el eje y 3 grados

glRotated(3,0,0,1 -- Gira 3 grados alrededor del eje z

Este programa dibuja NN puntos en los tres espacio dimensional, y cada punto está representado por un cubo con una longitud de lado c1, el color está determinado por el valor z.

for (i = 0; i< NN ; i++)

{

glPushMatrix();

glTranslatef(x[i ],y[i],z[i]);

(void) my_color(z_color(z[i]));

(void) glutSolidCube(c1); /p>

glPopMatrix();

}; // final para i

-----------------

Preste atención al orden de traslación y rotación. Si el orden es diferente, la posición y el estado del resultado final pueden no ser los mismos.

Si es necesario, agregue glPushMatrix(); glPopMatrix(); para asegurarse de que sea la conversión de posición que desea.