上一节中教给您三角形和四边形的着色。这一课将教您如何将这些彩色对象绕着坐标轴旋转。
其实只需在上节的代码上增加几行就可以了。下面将整个例程重写一遍。方便您知道增加了什么,修改了什么。
增加两个变量来控制这两个对象的旋转。这两个变量加在程序的开始处其他变量的后面( bool fullscreen=TRUE;下面的两行)。它们是浮点类型的变量,使得我们能够非常精确地旋转对象。浮点数包含小数位置,这意味着我们无需使用1、2、3...的角度。你会发现浮点数是OpenGL编程的基础。新变量中叫做 rtri 的用来旋转三角形, rquad 旋转四边形。
Var
……
rtri : GLfloat; // 用于三角形的角度 ( 新增 )
rquad : GLfloat; // 用于四边形的角度 ( 新增 )
……
然后修改 glDraw()如下:
Procedure glDraw();
Begin
glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存
glLoadIdentity(); // 重置当前的模型观察矩阵
//下一行代码是新的。glRotatef(Angle,Xvector,Yvector,Zvector)负责让对象绕某个轴旋转。
//这个命令有很多用处。 Angle 通常是个变量代表对象转过的角度。
//Xvector , Yvector 和 Zvector 三个参数则共同决定旋转轴的方向。
//比如(1,0,0)所描述的矢量经过X坐标轴的1个单位处并且方向向右。
//(-1,0,0)所描述的矢量经过X坐标轴的1个单位处