OpenGL 变换实例——了解3D图形的变换
在OpenGL中,变换是将场景中的对象和相机进行转化、改变位置、大小和方向的基本操作。本文将演示包括平移、旋转、缩放和投影变换在内的几个实例,并附带源代码。
- 平移变换
平移变换是指将物体在三维坐标系中向任意一个方向平移一定距离。下面代码展示了如何在OpenGL中进行平移操作:
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.5f, -0.5f, -2.0f);
其中,glMatrixMode(GL_MODELVIEW)
表示工作矩阵为模型视图矩阵;glLoadIdentity()
重新设置当前矩阵为单位矩阵;glTranslatef(x, y, z)
将当前模型视图矩阵乘以一个平移矩阵,平移距离由参数(x, y, z)
确定。
- 旋转变换
旋转变换是指将物体围绕某个轴心旋转一定角度。下面代码展示了如何在OpenGL中进行旋转操作:
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(45.0f, 0.0f, 1.0f, 0.0f);
其中,glRotatef(angle, x, y, z)