WorldWind学习系列十六:3DCrossSection插件功能分析——TerrainViewer.doc

WorldWind学习系列十六:3DCrossSection插件功能分析——TerrainViewer.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WorldWind学习系列十六:3DCrossSection插件功能分析——TerrainViewer

WorldWind学习系列十六:3D Cross Section插件功能分析——TerrainViewer 来源:博客园 ?? 作者:无痕客  很长时间没写WorldWind方面的东西啦!一方面是自己最近工作上忙点,一方面因为自己热情衰减了,俗话说,“一鼓作气,再而衰,三而竭”,我现在学习WW就有点没太有毅力和士气了!本来想这周末总结一下前段时间的WorldWind学习,没想自己放假期间自制力很差,没一点效率,几乎都上网玩了。 ?????WW的总结只能拖后了,可能过段时间有兴趣有时间了,可能会把总结写了,然后继续深入研究吧。我感觉自己学习或做事都缺点毅力,总是搞定虎头蛇尾的!本来研究WW好好的,可是看了.NET互操作方面的书感觉很好,于是兴致勃勃地学习.NET互操作。看了三章,遇到难点又想放弃来搞线程方面的。我有时都服了自己了:三心二意的!不扯周末的思想了。 ???? WW学习研究虽没像以前那样专注,但也还是时不时关注一下的,前段时间看到3D Cross Section插件,感觉很惊奇,就想研究一下,没想到自已一拖再拖,现在才准备写点东西。 ???? 3D Cross Section插件主要是提取WW中当前视图的地形数据和影像数据,然后在新的窗口TerrainViewer中显示。也就是提取一部分三维在新的窗体里重点显示。功能就简单一说,3D Cross Section插件中实现提取WW数据的插件部分我们下次再说,我这次主要是关注TerrainViewer的实现。 ??????????????????? ???? TerrainViewer的功能可以单独使用,正如其名字就是一个简单的三维地形数据的浏览器,简直是Mini型的WW。但它里面内容很丰富,有很多知识点值得我们学习借鉴:一方面是C#知识;一方面是Direct3D方面知识;还有就是其中涉及数据算法方面的处理。 ????? 首先,说一下其中的C#拖拽文件到窗体打开功能的实现,看过很多软件特别是视频播放器软件,只要将视频文件拖到上面就能播放该视频;看过Office软件普遍支持拖放打开相应的文件;看过只要将文件拖入回收站就能自己删除等等。这些拖拽方法是如何在C#实现的?自己搞编程很久了,没遇到过这样的需求,也没见过这样代码实现案例,所以自己也就没深入研究这方面的知识。在研究TerrainViewer功能时,看到支持拖拽功能,就首先学习了一下它是如何实现的。自己以后的程序支持类似的拖放打开文件功能多酷?!分析一下该功能代码,与大家分享一下。 ????????????//?Drag?drop ????????????this.AllowDrop?=?true;?//允许窗口拖放 ????????????//注册拖放开始事件 ????????????this.DragEnter?+=?new?DragEventHandler(this.OnDragEnter); ????????????//注册拖放处理事件 ????????????this.DragDrop?+=?new?DragEventHandler(this.OnDragDrop); 复制代码 ?看看this.OnDragEnter和this.OnDragDrop事件处理中都分别做了什么。 ????????//?File?drop?handling ????????private??void??OnDragEnter(object?sender,?System.Windows.Forms.DragEventArgs?e) ????????{ ????????????e.Effect?=?DragDropEffects.Copy;??//?set?the?cursor?to?show?a?drop?copy ????????} 复制代码 上面的代码里主要是告诉,拖放的目的和效果是COPY。从下面的截图中,可以看到各种各种拖放效果。 ????? ?从MSDN上截取的DragDropEffects说明: ?????????????? ? 真正处理拖放文件的打开实现的代码: private??void??OnDragDrop(object?sender,?System.Windows.Forms.DragEventArgs?e) ????????{ ????????????string?theFile; ????????????try ????????????{ ????????????????//?check?to?make?sure?the?dropped?item?is?of?type?FileDrop ????????????????if?(e.Data.GetDataPresent(DataFormats.FileDrop)

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档