首页 理论教育 Android游戏开发的坐标变换

Android游戏开发的坐标变换

时间:2023-10-22 理论教育 版权反馈
【摘要】:三维世界中的坐标变换是指,采用一定的数学方法将一种坐标系的坐标变换为另一种坐标系的坐标的过程。坐标变换是以矩阵的形式存储的,要完成这种类型的操作,矩阵堆栈就是一种理想的机制。我们可以认为gIPushMatrix()表示记录下当前的坐标位置,经过一系列的平移、旋转变换之后,可以调用glPopMatrix()以便回到原来的坐标位置。在三维世界中的坐标变换有两类,分别是缩放变换和平移变换。

Android游戏开发的坐标变换

三维世界中的坐标变换是指,采用一定的数学方法将一种坐标系的坐标变换为另一种坐标系的坐标的过程。在使用OpenGL ES绘制物体的时候,有时候需要在不同的位置绘制物体有时候绘制的物体需要有不同的角度,此时需要平移或旋转技术。在平移或旋转物体的时候会给观察者带来平移或旋转物体的感觉,但其实只是平移或旋转了坐标系,物体相对于坐标系实现了平移或旋转。坐标变换是以矩阵的形式存储的,要完成这种类型的操作,矩阵堆栈就是一种理想的机制。

在OpenGL ES中可以调用方法glPushMatrix()和glPopMatrix()来操作堆栈。glPushMatrix()表示复制一份当前矩阵,并把复制的矩阵添加到堆栈的顶部;glPopMatrix表示丢弃堆栈顶部的那个矩阵。我们可以认为gIPushMatrix()表示记录下当前的坐标位置,经过一系列的平移、旋转变换之后,可以调用glPopMatrix()以便回到原来的坐标位置。假如如果绘制一个游戏角色,就可以绘制机器人躯干,执行glPushMatrix(),记下自己的位置,然后移到角色左臂并绘制,执行glPopMatrix(),丢弃上次的平移变换,使自己回到角色的原点位置,执行glPushMatrix(),记住自己的位置,移动到机器人右臂。类似地,每个部位的绘制都进行如上操作,就绘制好了游戏角色。(www.xing528.com)

在三维世界中的坐标变换有两类,分别是缩放变换和平移变换。在本章的内容中,将通过具体实例的实现过程来讲解实现变换效果的流程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈