Android OpenGL教程-第四课【转】
第四课 旋转:
在这一课里,我将教会你如何旋转三角形和四边形。左图中的三角形沿Y轴旋转,四边形沿着X轴旋转。
我们增加两个变量来控制这两个对象的旋转。这两个变量加在程序的开始处其他变量的后面。它们是浮点类型的变量,使得我们能够非常精确地旋转对象。浮点数包含小数位置,这意味着我们无需使用1、2、3...的角度。你会发现浮点数是OpenGL编程的基础。新变量中叫做 rtri 的用来旋转三角形, rquad 旋转四边形。
private float rtri, rquad;
在OnDrawFrame里面增加代码如下:
gl.glRotatef(rtri, 0.0f, 1.0f, 0.0f);
三角形绕Y轴旋转;
gl.glRotatef(rquad, 1.0f, 0.0f, 0.0f);
四边形绕X轴旋转;
(注:原文中并没有详细在哪里加上面两句,学得有点绝望;经过自己尝试后,发现分别加在画三角形和四边形的glDrawArrays函数上面即可)
最后,增加旋转的角度
rtri+=0.2f;
rquad-=0.15f;
注:
一点测试代码
我们说了很久的顺时针,逆时针画图,到底有什么用呢
gl.glEnable(GL10.GL_CULL_FACE);
//设置openggl有剔除效果,就是看不到的面就不画,当然可以增加效率
gl.glFrontFace(GL10.GL_CCW);
//设置逆时针方向为正面
gl.glCullFace(GL10.GL_BACK);
//设置背面被剔除,不画
Cull就是剔除的意思
(注:本教程转自其他网页,并加以修改,查看原网页请点击这里)