首页 理论教育 Android游戏开发:实现缩放变换

Android游戏开发:实现缩放变换

时间:2023-10-22 理论教育 版权反馈
【摘要】:通过缩放变换可以改变物体的大小,把当前矩阵与一个表示沿各个坐标轴对物体进行拉伸、收缩和反射的矩阵相乘。图5-8 缩放矩阵图在图5-8所示的缩放矩阵图中,包含了x、y和z一共3个缩放因子,分别对应x轴、y轴和z轴,缩放变换是关于原点的缩放。在下面的实例中,演示了在Android手机屏幕中实现缩放变换效果的方法。1)编写实例文件ddd.java,具体实现流程如下。

Android游戏开发:实现缩放变换

通过缩放变换可以改变物体的大小,把当前矩阵与一个表示沿各个坐标轴对物体进行拉伸、收缩和反射的矩阵相乘。缩放的矩阵就可以简单地表示为如图5-8所示。

978-7-111-54543-9-Part02-214.jpg

图5-8 缩放矩阵图

在图5-8所示的缩放矩阵图中,包含了x、y和z一共3个缩放因子,分别对应x轴、y轴和z轴,缩放变换是关于原点的缩放。

在OpenGL ES中,通过方法glScalex(int x,int y,int z)和glScalef(float x,float y,float z)实现物体的缩放变换,表示把当前矩阵与一个表示沿各个轴对物体进行拉伸、收缩和放射的矩阵相乘,这个物体中的每个点的x、y和z坐标与对应的x、y和z参数相乘。

如果缩放值大于1.0它就拉伸物体;如果缩放值小于1.0它就收缩物体;如果缩放值为-1.0,它就反射这个物体。(1.0,1.0,1.0)是单位缩放值。

在下面的实例中,演示了在Android手机屏幕中实现缩放变换效果的方法。

978-7-111-54543-9-Part02-215.jpg

1)编写实例文件ddd.java,具体实现流程如下。

■ 开启一个自动缩放椭球体大小的线程

■ 分别改变椭球体的缩放值和设置椭球缩放的范围

■ 重写方法onDrawFrame(GLlo gl)以绘制椭球体。 文件ddd.java的主要代码如下。(www.xing528.com)

978-7-111-54543-9-Part02-216.jpg

978-7-111-54543-9-Part02-217.jpg

978-7-111-54543-9-Part02-218.jpg

2)编写文件suoCH.java,在此定义绘制椭圆球的类suoCH,主要实现代码如下

978-7-111-54543-9-Part02-219.jpg

978-7-111-54543-9-Part02-220.jpg

978-7-111-54543-9-Part02-221.jpg

978-7-111-54543-9-Part02-222.jpg

执行会在屏幕中实现一个具有自动缩放功能的椭圆,效果如图5-9所示

978-7-111-54543-9-Part02-223.jpg

图5-9 执行效果

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

我要反馈