Skip to content

相机控制参数

场景相机的控制我们一般只控制其位置和(方向)姿态,即控制我们从哪儿看场景,看向场景的什么地方,而能够看多远和多宽一般不会手动控制,程序会根据视窗大小和缩放或定位目标进行计算。有两种方式控制场景的相机

通过属性进行控制

通过相机对象的 positiondirectionup 三个属性就可以确定相机的位置和方向

  • position:相机位置,世界坐标(笛卡尔空间直角坐标)

  • direction:相机的方向(世界坐标系下),一个向量,使用 Cartesian3 表示

  • up:相机的上方向(世界坐标系下),一个垂直于 direction 的向量,使用 Cartesian3 表示

positiondirection 很好理解,想象一下使用一台摄像机拍照的过程,首先将相机放在指定位置,然后摄像机对准拍照目标。

option

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

option2

除了directionup 属性,还可以通过 headingpitchroll 属性来控制相机的方向,与前者的区别是,headingpitchroll 属性是相对相机自身的坐标系而言的,而 directionup 属性是相对世界坐标系而言的。在 Cesium 中,有一个类来表示这三个参数,即 HeadingPitchRoll

  • heading:以Z轴为旋转轴旋转,单位弧度,控制机头的朝向位置,左右摆头,范围为 0-360°,形象称为“摇头”

heading

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

pitch

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

roll

通过方法进行控制

场景相机对象提供了一些方法来控制相机的位置和方向,这些方法大致可以分为两类,一类是带动画效果的,另一类是不带动画效果的。

  • 带动画效果的方法,该类方法以 fly 开头,即常说的飞行定位,有以下几个方法

    flyHomeflyToflyToBoundingSphere

  • 不带动画的方法,即定位的过程中无过渡效果瞬间到达,有以下几个方法

    setViewviewBoundingSpherelookAtlookAtTransform

相机工具类(CameraUtil) 中我们封装了 flyTosetView 方法。

MGis 地理三维库