热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AE三维开发中二三维联动的问题,放大和平移的幅度不一致!求高手指导!!

AE三维开发二三维同步C#+AE急求高手想实现二维和三维的同步,二维地图放大多少三维就放大多少,二维平移多少,三维就平移多少,反过来亦是,现在同步实现了但是放大缩小的幅度
AE三维开发 二三维同步 C#+AE 急求高手
想实现二维和三维的同步,二维地图放大多少三维就放大多少,二维平移多少,三维就平移多少,反过来亦是,现在同步实现了但是放大缩小的幅度不对,如下图:
1、二维控制三维:(这是二维放大后点击联动 控制三维的结果)
二维地图:

三维地图:

代码如下:

            IActiveView pactiveview = (IActiveView)m_hookHelper.FocusMap;
            ISceneGraph pScenegraph = (ISceneGraph)m_scenehookHelper.SceneGraph;
            ICamera pCamera = (ICamera)m_scenehookHelper.Camera;
            pCamera.SetDefaultsMBB(pactiveview.Extent);
            pScenegraph.ActiveViewer.Redraw(true);

2、三维控制二维 :(这是三维平移后控制二维的结果)
三维图:

二维图:

代码如下:

             ICamera scenecamera = (ICamera)m_sceneHookHelper.Camera;
            IVector3D pvector3D = new Vector3DClass();
            pvector3D.ConstructDifference(scenecamera.Observer, scenecamera.Target);
            ISphere pShere = new SphereClass();
            pShere.Center = scenecamera.Target;
            pShere.Radius = scenecamera.ViewingDistance * Math.Sin(scenecamera.ViewFieldAngle * Math.PI / 180) * 0.5;
            IEnvelope penve = pShere.Envelope;
            m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.VisibleBounds = penve;
            m_hookHelper.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);


请问各位高手,我是不是用的接口不对?思路不对?求指教

6 个解决方案

#1


不好意思,你的问题我不会,但我还是想留个言,你太牛X了
你是高手,我想问下,你是用什么开发的C++ DirectX还是C# WPF 

#2


你看我的等级就知道我不会是高手。。。用的C#加第三方控件

#3


没有人知道吗?顶起来,高手不惜赐教啊!!

#4


好吧,这几天查了各种资料,试了几乎所有接口还是一开始的效果最好,以上就作为一个二三维视图联动的例子吧,自定义命令写的,可以实现,只是效果有点不太好,不过还可以,有高手以后看到了望不惜赐教!!

#5


楼主三维图是怎么画出来的?

#6


同求,三维图是怎么画出来的

推荐阅读
author-avatar
幽雅闲居xl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有