动画(3)——Camera 实现3D动画

android.graphics.Camera 实现3D动画

<1>、android.hardware.Camera 是负责调用摄像头的,而android.graphics.Camera是图形方面的,是一个空间变换工具,作用类似于Matrix

<2>、常用方法

applyToCanvas(Canvas canvas) 根据当前的变换计算出相应的矩阵,然后应用到制定的画布上去,注意是由画布来设置矩阵的。

getMatrix(Matrix matrix),将Camera所做的变换用到指定matrix上
rotateX(float degree) 绕着x轴旋转degree个度数
rotateY(float degree) 绕着y轴旋转degree个度数
rotateZ(float degree) 绕着z轴旋转degree个度数
translate(float x,float y,float z) 在x、y、z坐标轴上执行变换操作
save()和restore() 保存原状态,操作完之后,恢复到原状态

Camera的处理结果只是生成一个Matrix,该Matrix用于Bitmap或Canvas绘制Bitmap时才能产生旋转或缩放的效果。

<3>Camera与Matrix的一些区别如下:

1)、Camera的rotate()相关方法是指定某一维度上旋转指定的角度。

2)、Matrix的rotate()相关方法实现的效果是顺时针旋转指定的角度;与Camera指定Z轴旋转效果相同,但方向相反。

3)、Camera的translate()方法根据某一维度上视点的位移实现图像的缩放,与Matrix的scale()相关方法作用效果相似,只是Matrix的scale()相关方法是直接指定缩放比例。

4)、Camera不支持倾斜操作,Matrix可以直接实现倾斜操作

注意: camera位于坐标点(0,0),也就是视图的左上角;camera.translate(10, 20, 30)的意思是把观察物体右移10,上移20,向前移30(即让物体远离camera,这样物体将会变小);手机中的3维:X轴是手机的水平方向,Y轴是手机的竖直方向,Z轴是垂直于手机向里的那个方向。图如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值