在上一篇我们了解了 Cesium 的三大核心坐标系,这一篇我们深入讲解如何在这些坐标系之间自由转换,以及支撑这些变换的核心数学工具:矩阵与向量运算。掌握这些,你就能精准控制 3D 场景中任意实体的位置、朝向和姿态。
1、四元数Quaternion
四元数(Quaternion)是 3D 旋转的解决方案!它用 4 个数字(x, y, z, w)来表示旋转,完美解决了欧拉角的万向锁问题,而且插值更平滑。
欧拉角(HPR)Heading→Pitch→Roll,但它有两个致命问题:
- 万向锁:当俯仰角到 90 度时,偏航和横滚会重合,丢失一个自由度
- 插值不平滑:欧拉角的线性插值会走最短路径吗?不会,它会绕轴走弧线,导致旋转动画很奇怪
1.1 fromHeadingPitchRoll HPR 姿态角转四元数
把我们最熟悉的HPR 欧拉角 Heading-Pitch-Roll(偏航 – 俯仰 – 横滚),直接转成四元数, 解决欧拉角 “万向锁” 问题。
const heading = Cesium.Math.toRadians(0);
const pitch = Cesium.Math.toRadians(5);
const roll = Cesium.Math.toRadians(0);
const hpr






