Cesium中的3DTileset旋转变换实现
遇到这个问题才相信“知识就是财富”,我有答案我就不告诉你。
首先是确定旋转的坐标系,经过我的验证,坐标系是地固坐标系(ECEF)。使用fromRotationY,可以发现是绕着Y轴(90,0)旋转。

所以现在的问题,由enu变化为ecef的某个轴旋转。旋转轴由该点的位置确定,由地心指向该点。
如何绕着这个轴旋转,主要思路是将该轴进行绕x和y轴到z轴上,再恢复该状态。
值求解如下
MR求解如下
应用旋转矩阵时,tile由两处地方可以设置,一个是Cesium3DTileset.modelMatrix,一个是Cesium3DTileset.root.transform,实际应用的时候这两个矩阵会相乘。
平移很简单
缩放同理,最后引用变换矩阵。
需要注意的时候tilesCenter为Cesium3DTileset的包围盒中心,使用的是未变换时的位置。