首页 / 浏览问题 / 组件GIS / 问题详情
如何用组件开发实现三维场景第一人称
66EXP 2017年05月03日
超图桌面三维分析中有一个动态可视域功能,里面有按第一人称选项,请问如何用组件开发实现三维场景第一人称模式?

1个回答

您好,可视域对象自带观察相机,所以您只需实时更新场景的Camera让后者始终与前者处于相同位置相同视角即可。
5,560EXP 2017年05月03日
谢谢,可视域对象自带观察相机如何获取,我没有在Viewshed3D类找到这个属性.

我用Viewshed3D.ViewerPosition来构造相机,并实时更新Scene.FirstPersonCamera,可以达到第一人称视角效果.但是又不知道如何获取俯角值,只好先设置为90度.你有没有什么办法可以实时获取俯角值.

代码如下:(其中point3d为Viewshed3D.ViewerPosition)

if (true == isFirstPersonView)
            {
                var camera = new Camera
                {
                    Longitude = point3d.X,
                    Latitude = point3d.Y,
                    Altitude = point3d.Z,
                    AltitudeMode = AltitudeMode.Absolute,
                    Tilt = 90
                };
                if (m_viewshed3D.Direction < 0)
                    camera.Heading = m_viewshed3D.Direction + 360;
                else
                    camera.Heading = m_viewshed3D.Direction;
                m_sceneControl.Scene.FirstPersonCamera = camera;
            }
camera.Tilt = 90+m_viewshed3D.Pitch;

嘛,其实我说的“可视域对象自带观察相机”就是“可视域的观察点”。
很好,非常感谢.
你好 想问你这个问题解决了么 如何解决的~
...