如何用组件开发实现三维场景第一人称

0 投票
超图桌面三维分析中有一个动态可视域功能,里面有按第一人称选项,请问如何用组件开发实现三维场景第一人称模式?
5月 3, 2017 分类:  420次浏览 | 用户: petergis 初出茅庐 (56 分)

1个回答

0 投票
您好,可视域对象自带观察相机,所以您只需实时更新场景的Camera让后者始终与前者处于相同位置相同视角即可。
5月 3, 2017 用户: 张阳名 登峰造极 (5,392 分)
谢谢,可视域对象自带观察相机如何获取,我没有在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;

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