在编程过程中,遇到了一个函数SpriteBatch::setProjectionMatrix(OrthographicCamera.combined)。经过一番搜索,终于理解了他的含义。这里保留一些信息,以便以后参考。
一 和 二 只是为了理解这个函数做了一些简单的铺垫。
它与我们的观察方式(视角 camera)有很大的关系,在libgdx定义了两种Camera
笛卡尔坐标系:我们上初中时学的平面几何基本都是以笛卡尔坐标系为基础,简单的理解就是原点在左下角,只有X轴,Y轴。
投影坐标系:当学习立体几何时,如果还是使用笛卡尔坐标系,它不能表现出空间的概念,这样就需要一个立体的坐标系来描述立体几何图形在空间中的位置关系。除了X轴,Y轴这时又多出了一个Z轴。
这个函数在 libgdx帮助文档中的描述是 " Sets the projection matrix to be used by this Batch. " 在当前的Batch使用投影矩阵,或者说使用合并后的投影与视图矩阵。当然这样理解起来很抽象。
下面会有两个简单的例子来描述一下使用这个函数和不使用这个函数的区别。
测试原图
代码和测试结果
一 和 二 只是为了理解这个函数做了一些简单的铺垫。
一, 关于正交投影和透视投影
我们的世界是个立体的世界,但并不是所有的媒介都可以把我们看到的立体图像表现出来。
可以表现为正交投影,比如相机拍照片,它展现出来的是一个平面的二维的效果。
我们也可以用透视投影的方式,按照人眼观察事物的原则,例如近处大,远处小的方式,来画透视图。
它与我们的观察方式(视角 camera)有很大的关系,在libgdx定义了两种Camera
OrthographicCamera(正交) 和 PerspectiveCamera(透视)。
二,关于坐标系(笛卡尔坐标系和正交投影坐标系)
笛卡尔坐标系:我们上初中时学的平面几何基本都是以笛卡尔坐标系为基础,简单的理解就是原点在左下角,只有X轴,Y轴。
投影坐标系:当学习立体几何时,如果还是使用笛卡尔坐标系,它不能表现出空间的概念,这样就需要一个立体的坐标系来描述立体几何图形在空间中的位置关系。除了X轴,Y轴这时又多出了一个Z轴。
三,关于使用setProjectionMatrix
这个函数在 libgdx帮助文档中的描述是 " Sets the projection matrix to be used by this Batch. " 在当前的Batch使用投影矩阵,或者说使用合并后的投影与视图矩阵。当然这样理解起来很抽象。
下面会有两个简单的例子来描述一下使用这个函数和不使用这个函数的区别。
测试原图
1) 不使用 setProjectionMatrix。
代码和测试结果
package com.example.libgdx_sample_spirtebatch;
import com.badlogic.gdx.G