android开发之OpenGL(三)

注意:

// 重置当前的模型观察矩阵,让坐标原点恢复到(0,0,0);
gl.glLoadIdentity();

// 这句话执行完后,坐标原点发生变化,坐标原点左移 2.0 单位,并移入屏幕 6.0,直到下一句gl.glLoadIdentity();然后恢复到屏幕中心

gl.glTranslatef(-2.0f, 0.0f, -6.0f);

 

1. 由上面的解释后,就不难理解设置旋转的中心轴的的坐标了。

2. 举例说明。

 1 private float trianvertices[] = { 0.0f, 2.0f, 0.0f, // 上顶点
 2             -2.0f, -2.0f, 0.0f, // 坐下点
 3             2.0f, -2.0f, 0.0f, // 右下点
 4     };
 5 
 6 ... ...
 7 
 8 // 左移 2.0 单位,并移入屏幕 6.0,相当于原点向左移了2个单位
 9 gl.glTranslatef(-2.0f, 0.0f, -6.0f);
10 
11 ... ...
12 //所以这时候垂直方向的旋转中心轴的两点坐标如下
13 private float linetrianvertices[] = {0.0f, 3.0f, 0.0f,
14             0.0f, -3.0f, 0.0f};
15 //这块的点不固定,只要x,z轴不变就OK
16 
17 
18 //设置旋转
19 gl.glRotatef(rotateTri, 0.0f, 1.0f, 0.0f);

 

其中gl.glRotatef (Angle, XvectorYvectorZvector)

   Angle 通常是个变量代表对象转过的角度。 Xvector,Yvector和 Zvector三个参数则共同决定旋转轴的方向

   比如 (1,0,0)所描述的矢量经过 坐标轴的1个单位处并且方向向右。 (1,0,0)所描述的矢量经过X坐标轴的1个单位处,但方向向左。

 

 

 

posted @ 2012-08-13 10:06  柱柱  阅读(256)  评论(0编辑  收藏  举报