OSG地球摄像机位置
OSG Earth camera position
在几次负面尝试之后,我写信给你。
我正在使用OSGEarth,特别是我无法为起始位置设置相机的经度,纬度和高度。
恐怕这与我使用地球操纵器有关
所以我创建了相机:
osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());
osg::ref_ptr<osg::Camera> camera = new osg::Camera;
camera->setGraphicsContext(gc);
camera->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));
camera->setClearMask(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
然后,所以我创建了我传递地球操纵器的视图
osg::ref_ptr<osgViewer::Viewer> g_viewer = new osgViewer::Viewer;
osg::Vec3d eye(1110.0, 1110.0, 1110.0);
osg::Vec3d center(10.0, 10.0, 10.0);
osg::Vec3d up(0.0, 1.0, 0.0);
g_viewer->setCamera(camera.get());
EarthManipulator* manip = new EarthManipulator();
manip->setViewpoint(Viewpoint(
"Home",
-71.0763, 42.34425, 0,
// -71.0763, 42.34425, 0, // longitude, latitude, altitude
24.261, -21.6, 3450.0), // heading, pitch, range//3450
4.0); // duration, 4.0);
g_viewer->setCameraManipulator(manip);
但我不能从通常的点移动。
我还尝试在EarthMipulator上工作,特别是设置主位置。
manip->setHomePosition((
但没有任何变化
你想要的方法是EarthManipulator::setHomeViewpoint:
manip->setHomeViewpoint(Viewpoint(
"Home",
-71.0763, 42.34425, 0, // longitude, latitude, altitude
24.261, -21.6, 3450.0)); // heading, pitch, range
希望这有帮助!
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- OSG地球摄像机位置
- 分别移动摄像机到它的位置
- 如何从视图矩阵中获取当前摄像机位置