【Android】android.graphics.Camera

2021-12-20  本文已影响0人  littlefogcat

Camera绕中心旋转的方法

在使用Camera进行3D旋转的时候,发现转动的中心点是屏幕左上角,并且没有相关方法进行设置。在搜寻之后,找到文章:
安卓自定义View进阶-Matrix Camera - GcsSloop

简单来说,就是先将目标Matrix移动到Camera中心处,在变换之后再将Matrix移回原处。

以下为示例代码:
其中,三个轴旋转角度为rxryrz,旋转的中心点坐标为cxcy

val cam = Camera()
val m = Matrix()
cam.rotate(rx, ry, rz)
cam.getMatrix(m)
m.preTranslate(-cx, -cy) // <===========将Matrix移动到相机中心
m.postTranslate(cx, cy) // <===========将Matrix移回原处

Matrix学习

GcsSloop的博客
GcsSloop的博客 - CSDN
安卓自定义View进阶-Matrix原理
安卓自定义View进阶-Matrix详解

上一篇下一篇

猜你喜欢

热点阅读