android的Camera和Matrix
2016-04-02 15:38
423 查看
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进行平移或放大。
下面是一些细节点:
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进行平移或放大。
相关文章推荐
- Android过时方法替代
- android 监听系统时区变化,日期变化,时间变化
- [置顶] android开发之java JDK环境变量配置的信息代码 附详细教程。
- ListView 基本使用
- Android编程学习笔记 之 Fragment与Activity的数据传递
- Android的sp,dp,px
- [Java][Android][Process] 暴力的服务能够解决一切,暴力的方式运行命令行语句
- Android的fill_parent和wrap_content
- android view的生命周期
- Android开发:创建一个可供编辑的图片(bitmap)
- Adob Flash Professional CS6发布Android手机应用报异常
- Android无线开发的几种常用技术(阿里巴巴资深工程师原创分享)
- Android学习之RecylerView实习仿支付宝充值界面
- Android 新版NDK环境搭建(免Cygwin)
- $《第一行代码:Android》读书笔记——第13章 Android高级技巧
- 如何在Android开发中使用JavaBean---FastJson非官方使用指南
- Android各层推荐开发书籍及参考资料!!!
- Android学习第四篇——使用绘图API自定义视图
- Android Studio处理png与.9图片问题
- Android Studio初次使用问题