实现 
- 我们首先使用
Cesium.Transforms.eastNorthUpToFixedFrame方法创建一个基于地球坐标系的固定参考帧m1,该参考帧用于描述模型的朝向。 - 接下来,我们通过将
m1的逆矩阵与模型的变换矩阵transform相乘,得到一个新的变换矩阵m3。这个矩阵包含了模型相对于固定参考帧的旋转信息。 - 我们从
m3中提取出旋转矩阵mat3,然后使用Cesium.Quaternion.fromRotationMatrix方法将其转换为四元数q。 - 最后,我们使用
Cesium.HeadingPitchRoll.fromQuaternion方法从四元数q中获取模型的朝向、俯仰角和滚转角。 - 将计算得到的姿态信息存储在
dataObj对象的heading、pitch和roll属性中。 
javascript
// 计算模型的朝向
function computeModelHeading(transform) {
    const m1 = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Matrix4.getTranslation(transform, new Cesium.Cartesian3()), Cesium.Ellipsoid.WGS84, new Cesium.Matrix4());
    const m3 = Cesium.Matrix4.multiply(Cesium.Matrix4.inverse(m1, new Cesium.Matrix4()), transform, new Cesium.Matrix4());
    const mat3 = Cesium.Matrix4.getMatrix3(m3, new Cesium.Matrix3());
    const q = Cesium.Quaternion.fromRotationMatrix(mat3);
    const hpr = Cesium.HeadingPitchRoll.fromQuaternion(q);
    // 获取模型的heading、pitch、roll
    const heading = Cesium.Math.toDegrees(hpr.heading);
    const pitch = Cesium.Math.toDegrees(hpr.pitch);
    const roll = Cesium.Math.toDegrees(hpr.roll);
    dataObj.heading = heading;
    dataObj.pitch = pitch;
    dataObj.roll = roll;
}

