首页 / Cesium / 使用示例
模型航向俯仰横滚
一个机头朝东的长方体悬在 400 米高空,三个滑杆分别控制航向、俯仰、横滚, 地面上有一条向北的箭头做基准。
源码与运行效果
三个角的方向约定
HeadingPitchRoll 的顺序是航向、俯仰、横滚,全部用弧度。
航向从正北起顺时针增加,俯仰为正表示抬头,横滚绕自身纵轴。
三者按航向、俯仰、横滚的顺序依次作用。
模型默认朝向在本地坐标的 +X 方向,也就是当地东向。 因此航向为 0 时模型指向东,而地面箭头指向北,两者相差 90°。
旋转到固定位置
Transforms.headingPitchRollToFixedFrame 直接生成 4 × 4 变换矩阵:
平移来自坐标点,旋转来自姿态角,再加一层从地心坐标到当地东北天的转换。
赋值给 model.modelMatrix 就完成摆放。
可调参数
| 位置 | 改什么 | 效果 |
|---|---|---|
| 航向滑杆 | 0 到 360° | 模型绕地垂线旋转 |
| 俯仰滑杆 | -90 到 90° | 机头抬起或下压 |
| 横滚滑杆 | -90 到 90° | 机身侧倾 |
GLB 的 buildBox 尺寸 | 1.8 改成 3.0 | 机身更长,姿态更易辨认 |
矩阵每改一次就重建。示例在滑杆回调里重新计算矩阵,属于低频操作。
如果模型沿轨迹连续飞行,应改用 CallbackProperty 提供四元数,
让 Cesium 按当前时间取值,而不是每帧手动赋值。