基于WPF技术的雷达模拟实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于WPF技术的雷达模拟实现.doc

基于WPF技术的雷达模拟实现   【摘 要】WPF为Windows Presentation Foundation缩写 ,是微软新一代图形系统,运行在.NET Framework 3.0架构下,为用户界面、2D/3D 图形、文档和媒体提供统一的描述和操作方法。基于WPF技术雷达动画设计,动画演变时间进度与软件节点状态同步响应设计,可实现雷达扫描实时性。异步方式节点状态监测,利用线程独立于雷达进程运行,为其提供后台监测服务,完成对雷达节点数据转换要求。   【关键词】WPF,XAML语言 雷达模型 动画   1 WPF技术简介   基于DirectX 9/10技术的WPF不仅带来前所未有的3D界面,且其图形向量渲染引擎也大大改进传统2D界面,如Vista中半透明效果窗体等都得益于WPF。 WPF相对于Windows客户端开发来说,向前跨出很大一步,它提供了超丰富的.NET UI 框架,集成矢量图形,丰富流动文字支持flow text support,3D视觉效果和强大无比的控件模型框架。   2 WPF技术雷达实现   XAML标记语言是WPF技术特色,设计人员利用它能构建绚丽多彩UI界面。实际开发中,设计人员利用Microsoft Expression Blend 工具来设计界面,并生成XAML用户界面,下面例子是利用XAML构建雷达模型,实现雷达动画,利用C#语言完成监控业务逻辑,实现C#与XAML语言完美结合,为用户创建震撼效果的雷达监控功能。本案例使用了Mircosoft Visual Studio.NET 2008开发工具和Microsoft Expression Blend 2设计工具,采用C/S架构模式,使用C#语言和Xaml语言。   2.1 雷达监控功能描述   雷达图的图形界面分三个区域:区一表示业务系统运行正常;区二表示业务系统部分关键指标出现告警,系统运行受到影响;区三表示业务系统关键指标不可用,系统运行不可用;各系统监测状态主要通过探针服务器直接进行可用性探测,并参考各业务核心关键指标,各系统图标依据以上三种状态进行颜色变化。当某个系统出现问题后(区域二或区域三)进行告警,据问题严重程度排序显示。并展示各业务系统运行状态统计图。   2.2 雷达建模   这里主要使用Expression Blend工具来生成XAML语言雷达模型,设计时将Canvas元素作为模型容器,内部使用大小不同Ellipse元素,转换成路径,通过渐变填充构建出雷达效果背景。   2.3 雷达动画驱动   创建雷达动画,动画主要针对上述指针模型,围绕雷达中心点,周而复始进行360度旋转。下面代码是雷达动画故事版代码,每一圈动画速率为10秒。   //加载雷达故事板Story = (Storyboard)this.Resources[EllipseAnimation];   //触发时间线过度事件Story.CurrentTimeInvalidated += new EventHandler(story_CurrentTimeInvalidated);Story.Begin();   2.4 雷达扫描同步   雷达扫描同步是动画演变时间进度与软件节点状态同步响应设计,利用Storyboard类中故事板对象CurrentTimeInvalidated事件,实现扫描进度与实际监控状态响应同步。   ///节点状态同步监测服务类PCTK.App_Code.SystemSoftAnimation Syssoft;   //时间线事件 void story_CurrentTimeInvalidated(object sender, EventArgs e){Clock myClock = (Clock)sender; if (myClock.CurrentTime != null)   double TotalSeconds =Math.Round(myClock.CurrentTime.Value.TotalMilliseconds, 4);   CountAnimation = (int)TotalSeconds / 10000;   double NowIndex = Math.Round((TotalSeconds - CountAnimation * 10000) / avgtime, 4);Syssoft.SetSoftState(NowIndex); Syssoft.SetSoftXY(); }}   2.5 节点状态异步监测   节点状态监测主要是独立于雷达动画进程节点状态监测,是雷达中表现的被监控对象。在本案例中节点是各应用系统,用独立线程从中间库提取应用系统运行状态, T

文档评论(0)

jingpinwedang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档