相机控制参数
场景相机的控制我们一般只控制其位置和(方向)姿态,即控制我们从哪儿看场景,看向场景的什么地方,而能够看多远和多宽一般不会手动控制,程序会根据视窗大小和缩放或定位目标进行计算。有两种方式控制场景的相机
通过属性进行控制
通过相机对象的 position、 direction 、 up 三个属性就可以确定相机的位置和方向
position:相机位置,世界坐标(笛卡尔空间直角坐标)direction:相机的方向(世界坐标系下),一个向量,使用Cartesian3表示up:相机的上方向(世界坐标系下),一个垂直于direction的向量,使用Cartesian3表示
position 和 direction 很好理解,想象一下使用一台摄像机拍照的过程,首先将相机放在指定位置,然后摄像机对准拍照目标。

up 属性来指定相机左右倾斜的状态

除了direction 、 up 属性,还可以通过 heading 、 pitch 、 roll 属性来控制相机的方向,与前者的区别是,heading 、 pitch 、 roll 属性是相对相机自身的坐标系而言的,而 direction 、 up 属性是相对世界坐标系而言的。在 Cesium 中,有一个类来表示这三个参数,即 HeadingPitchRoll。
heading:以Z轴为旋转轴旋转,单位弧度,控制机头的朝向位置,左右摆头,范围为0-360°,形象称为“摇头”

pitch:以X轴为旋转轴旋转,单位弧度,控制飞机的起降朝向,上下摆头,范围为-180°-180°,形象称为“点头”

roll:以Y轴为旋转轴旋转,单位弧度,控制飞机的侧翻角度,范围为-180°-180°,形象称为“歪头”

通过方法进行控制
场景相机对象提供了一些方法来控制相机的位置和方向,这些方法大致可以分为两类,一类是带动画效果的,另一类是不带动画效果的。
带动画效果的方法,该类方法以
fly开头,即常说的飞行定位,有以下几个方法flyHome、flyTo、flyToBoundingSphere不带动画的方法,即定位的过程中无过渡效果瞬间到达,有以下几个方法
setView、viewBoundingSphere、lookAt、lookAtTransform
在 相机工具类(CameraUtil) 中我们封装了 flyTo 和 setView 方法。