首页 / Cesium / 使用示例
围绕目标转圈
相机锁在中心塔上,航向每帧加一点点,于是自动绕圈。 俯仰与距离两个滑杆随时改变观察角度,暂停按钮冻结当前视角。
源码与运行效果
每帧重算一次位姿
在 scene.preRender 里把航向加上 0.0032 弧度,再调用
camera.lookAt(center, new HeadingPitchRange(...))。
由于每次调用都会重新算相机位置,连续执行就形成了环绕。
增量按帧而不是按时间累加,所以帧率变化时转速会略有不同。 需要恒定角速度时,改成按两帧之间的秒数乘以角速度。
两个参数的作用
pitch 为负表示从上往下俯视,越接近 -90° 越接近垂直俯视;
range 是相机到目标的直线距离,单位米。两者一起决定
相机在球面上方的一个锥形区域内移动。
可调参数
| 位置 | 改什么 | 效果 |
|---|---|---|
| 俯仰滑杆 | -80° 到 -4° | 从俯视到接近平视 |
| 距离滑杆 | 300 到 4000 米 | 远景与近景 |
heading += 0.0032 | 改成 0.012 | 转得更快 |
CENTER 的高度 | 120 改成 0 | 绕地面点旋转 |
lookAt 会接管相机。环绕期间手动拖拽仍有效,但下一帧又会被覆盖。 所以示例提供了暂停按钮,暂停后相机就交回鼠标控制。