osgEarth::Viewpoint 属性
时间: 2024-10-18 08:20:59 浏览: 88
`osgEarth::Viewpoint` 是 osgEarth 库中的一个重要类,它代表了地球视角,用于控制虚拟地球(如 Google Earth 或者 OpenSceneGraph 地球模拟器)中的相机位置、方向和高度等。这个类提供了许多属性来定制用户的观察体验,以下是一些主要的属性:
1. `position`: 表示摄像机的位置(经度、纬度、海拔),通常是一个三维坐标。
2. `lookAt`: 定义视点朝向的目标点,通常是地面上的一个位置或一组经纬度。
3. `up`: 摄像机的上方向,这影响了旋转的方向,默认为地球自转轴方向(Z轴)。
4. `zoom`: 视野缩放级别,决定了地球表面显示的细节程度。
5. `range`: 视场范围,定义了从当前位置到可看到的最大距离。
6. `tilt`: 摄像机相对于地面的角度,常用来模拟鸟瞰或者俯视。
7. `bearing`: 从正北开始的相机旋转角度,决定了摄像机的偏航。
8. `altitudeMode`: 判断高度模式,例如绝对高度、相对海平面高度等。
9. `horizonHeight`: 地平线的高度,有助于设置特定场景下的视图效果。
10. `horizontalExaggeration`: 地球水平尺寸的放大比例,改变地球扁平化的程度。
这些属性可以通过直接赋值或者使用成员函数调整。例如:
```cpp
osgEarth::Viewpoint* viewpoint = new osgEarth::Viewpoint;
viewpoint->setPosition(osg::Vec3d(0, 0, 0)); // 设置初始位置
viewpoint->setUp(osg::Vec3d(0, 1, 0)); // 设置上方向
// 使用setLookAt动态调整目标
viewpoint->setLookAt(osg::Vec3d(116.404, 39.915, 0), osg::Vec3d(116.404, 39.915, 100));
```
阅读全文