您的位置:首页 > 移动开发 > Android开发

初探android的Camera和Matrix

2015-06-22 13:23 288 查看
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进行平移或放大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: