基于TerraExplorer的三维地形可视化开发.doc
-
资源ID:2805817
资源大小:1.72MB
全文页数:2页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于TerraExplorer的三维地形可视化开发.doc
2012. 13图 1图 2图 3基于 T erraExplorer 的三维地形可视化开发黄永兴金 龙摘 要:在 VC+环境下, 通过一个 Skyline TerraExplorer 集成 COM 开发实例,介绍了集成三维地形可视化应用 VC+和 MFC 的编程方法, 包括添加 OLE 自动化客户支持、 创建三维地形显示窗口、 添加三维地形显示菜单命令等, 为采用 VC+创建集成三维地形可视化应用程序提供了一 个详实的参考。关键词: 三维地形可视化; OLE; Skyline TerraExplorer 集成开发( 1) 创 建 框 架 程 序 , 设 计 包 含 TerraExplorer 对 象 的 对 话1引言Skyline 软件套装是一套完整的三维场景建立 、框, 实现 OLE 自动化客户支持。发 布 、 浏启动 Visual Studio, 利用 MFC AppWizard 应用程序向导创览 的 平 台 , 被广泛应用在国土 、 测 绘 、 军 事 、 GIS 等 相 关 领域, 它为用户提供了先进的三维地形可视化技术, 并且提供了 集成三维地形显示开发接口, 方便用户在其他应用程序中利用 TerraExplorer 提 供 的 COM 组件进行集成三 维地形可视化编程 开发。建一个基于对话框的应用程序 Pproject1, 创建过程中各选项可保留默认选项, 如图 2 所示。2TerraExplorer 接口说明在 VC+环境下, TerraExplorer 向用户提供了 3 个 ActiveX 控件, 分别是 TE3Dwindow 、 TENavigationMap 和 TEInformation Window。 其中 TE3DWindows 用于显示三维地形场景, TENavi gationMap 用于显示二维导 航 地 图 , TEInformationWindow 用 于 显示模型、 注记等对象列表。 在使用这些组件之前, 需要先安 装 TerraExplorer 三维地形显示库文件如图 1 所示。1) 创建完成后按如下步骤在程序中加入 OLE 自动化支持代码:在 stdafx.h 中原有 #include 后加入代码:#import"C:Program FilesSkylineTerraExplorerTerraExplorerX.dll"raw_interfaces_only,no_namespace,named_guids2) 在 Project1.rc 资 源 对 话 框 中 , 插 入 TE3Dwindow 和TEInformationWindow 组件, 如图 3、 图 4 所示。集成三维地形可视化开发实例三维地形的数据处理及可视化文件生 成 在 Skyline 的 TerraBuilder 和 TerraExplorer Pro 工具中实现, 具体操作在这里 不作细述, 下面只是针对系统已经正确安装了 TerraExplorer 后, 对已经生成的三维可视化文件 *.sky 文件进行编程调用显示。实例采用 VC+面向对象编程语言实现, 主要步骤如下:3642012. 13图 4图 5图 62) 近距离三维效果如图 7 所示。图 73) 三维注记显示效果如图 8 所示。图 8GRAPHICS AND IMAGE PROCESSING漫游。1) 全球视图效果 如图 6 所示。插入 TE 组件后, 再加入两个 Button 按钮, 最终程序对话框如图 5 所示。3) 在 Project1.h 中加入如下代码:(2) 程序编码, 实现应用程序与对话框的交互。1) 在 Project1Dlg.cpp 文 件 中 的 OnInitDialog 函 数 中 加 入TerraExplorer 初始化代码, 获取其句柄:2) 在 “ 加载 FLY 文 件 ” 按 钮 的 Click 事件中加入文件调 用代码:结语43) 在析构函数中, 释放 TerraExplorer 组件资源。从实用性出发, 详细介绍了在 VC+环境下完成TerraExplorer 集成三维地形可视化的开发过程 , 该开发过程借助 TerraExplorer 的强大功能, 编码简单、 开发快速, 为三维地形 可视化系统应用程序的开发提供了一个良好的思路, 用户可以 添加自己的各种算法, 从而实现三维地形可视化的多种应用。(收稿日期: 2012-05-01)(3) 编译并运行程序。编译成功之后 TerraExplorer 在 VC+环境下的集成开发平 台就搭建好了。用户可以通过点击左侧列表中的对象, 来快速切换显示目 标, 也可以在右侧三维视图中, 通过鼠标、 键盘进行三维地形65m_pTerraExplorer.Release();m_pIInformationTree.Release();CString szFilters = "三维地形演示文件(*.fly)|*.fly|"CFileDialog fileDlg(true,"fly 文件","*.fly",0,szFilters,this);if(fileDlg.DoModal() = IDOK)_bstr_t flyFile = fileDlg.GetFileName();m_pTerraExplorer->Load(flyFile);HRESULThr= m_pTerraExplorer.CreateInstance(CLSID_TerraExplorer); ASSERT(SUCCEEDED(hr);hr = m_pTerraExplorer->QueryInterface(&m_pIInform ationTree);ASSERT(SUCCEEDED(hr);ITerraExplorer51Ptr m_pTerraExplorer;IObjectManager51Ptr m_pIObmager; IInformationTree5Ptr m_pIInformationTree;