Camera绕中心旋转的方法
在使用Camera进行3D旋转的时候,发现转动的中心点是屏幕左上角,并且没有相关方法进行设置。在搜寻之后,找到文章:
安卓自定义View进阶-Matrix Camera - GcsSloop
简单来说,就是先将目标Matrix移动到Camera中心处,在变换之后再将Matrix移回原处。
以下为示例代码:
其中,三个轴旋转角度为rx
、ry
、rz
,旋转的中心点坐标为cx
、cy
。
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详解
网友评论