Android OpenGL ES 简明开发教程四:3D 坐标变换

来源:互联网 发布:json二维数组格式 编辑:程序博客网 时间:2024/06/04 18:37

        http://www.imobilebbs.com/wordpress/?p=1530

        OpenGL使用了右手坐标系统,右手坐标系判断方法:在空间直角坐标系中,让右手拇指指向x轴的正方向,食指指向y轴的正方向,如果中指能指向z轴的正方向,则称这个坐标系为右手直角坐标系。

Translate平移变换

方法public abstract void glTranslatef (float x, float y, float z) 用于坐标平移变换。

参数分别表示向x、y、z轴平移,正数为正方向,负数为负方向,例如:gl.glTranslatef(2, 0, 0);//整体向X轴正方向平移两个单位

Rotate旋转

方法public abstract void glRotatef(float angle, float x, float y, float z)用来实现选择坐标变换,单位为角度。

参数分别表示向x、y、z轴转动angle个角度,坐标轴的箭头射向你,如果x、y、z为正,angle为正数表示逆时针方向,否则为逆时针方向。如果x、y、z为负,结果相反。例如:gl.glRotatef(90f, 1.0f, 0.0f, 0.0f);//绕x轴顺时针方向转动90度


Scale(缩放)

方法public abstract void glScalef (float x, float y, float z)用于缩放变换。

参数分别表示向x、y、z轴坐标值缩放x、y、z倍。大于1为扩大,小于1为缩小,例如:gl.glTranslatef(2, 1, 0.5);//x轴坐标值扩大2倍,y轴不变,z轴缩小到0.5倍


在栈中保存当前矩阵和从栈中恢复所存矩阵,可以使用 

public abstract void glPushMatrix() public abstract void glPopMatrix()。


 

 

原创粉丝点击