当前位置: 代码迷 >> Android >> 初探android的Camera跟Matrix
  详细解决方案

初探android的Camera跟Matrix

热度:71   发布时间:2016-05-01 13:27:11.0
初探android的Camera和Matrix

       camera的坐标系是左手坐标系。伸出左手,让拇指和食指成L形,大拇指向右,食指向上,中指指向前方,这样我们就建立了一个左手坐标系,拇指,食指,中指的指向分别代表了x,y,z轴的正方向。如下图所示:


下面是一些细节点:

1,camera位于坐标点(0,0),也就是视图的左上角;

2,camera.translate(10, 20, 30)的意思是把观察物体右移10,上移20,向前移30(即让物体远离camera,这样物体将会变小);
3,camera.rotateX(45)的意思是绕x轴顺时针旋转45度。举例来说,如果物体中间线和x轴重合的话,绕x轴顺时针旋转45度就是指物体上半部分向里翻转,下半部分向外翻转;
4,camera.rotateY(45)的意思是绕y轴顺时针旋转45度。举例来说,如果物体中间线和y轴重合的话,绕y轴顺时针旋转45度就是指物体右半部分向里翻转,左半部分向外翻转;
5,camera.rotateZ(45)的意思是绕z轴顺时针旋转45度。举例来说,如果物体中间线和z轴重合的话,绕z轴顺时针旋转45度就是指物体上半部分向左翻转,下半部分向右翻转;

------------------------------------------------------------

       Matrix是一个3 x 3的2D空间矩阵,关于其具体请参见博文《Android Matrix理论与应用详解》,这里补充说明一点:

1,下图中的MPERSP_2指的是投影变换

 关于投影变换理论部分请参见博文《OpenGL笔记之矩阵变换(Matrix Transformation)》,其实际作用就是如果MPERSP_2=0.5,那么物体是原来的4倍大小;如果MPERSP_2=2,那么物体是原来的1/4大小。

------------------------------------------------------------

      Camera和Matrix的联合使用:一般情况下,如果我们需要进行3D变换,那么需要将Camera和Matrix联合使用,使用Camera进行x轴或y轴的旋转,使用Matrix进行平移或放大。

  相关解决方案