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
----------------- p>
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.