OpenGL图像平移、旋转基本操作总结

           在OpenGL里面使用glTranslatef()、glRotatef()等函数可以图形的平移、旋转等。


1、在变换的时候都是对绘图坐标系进行的变换,所以在此坐标系中画的图都会被变换;如果要画两个图,但只想对第一个图进行变换,第二个图不变换或者进行不同的变换,这个时候就需要注意一点:在前一个图使用变换矩阵的时候加上:

glPushMatrix();
glTranslatef();

//绘图代码.........

glPopMatrix();

只有这样,第二个图才不会受到前一个变换的影响。


          2、复合变换

比如,用OpenGL画一个图,我想让他先饶Z旋转,然后沿X轴平移。这个时候就需要注意变换矩阵的顺序:

//先调用平移矩阵,然后调用旋转矩阵,与我们
//要看到的实际效果相反
glTranslatef(m_Rimage_Xoff,0.0f,0.0f);
 glRotatef(30.0f,0.0f,0.0f,1.0f);


你可能感兴趣的:(OpenGL学习)