发布一个用于WinCE的矢量图控件
发布一个在wince操作系统下,采用.net compact framework 1.0 ( c#)开发的矢量图控件,我于2007年3月份集中一个月的经历完成了它。当然,它的前身是2005年12月我写的第一个矢量图控件,在后来我在此基础上改进了很多地方,针对具体应用做了重新设计并集中精力把它完成,由于属于再次设计,因此它的架构设计和编码中凝聚了我此前开发中的经验和积累,它是我当时最满意的一个模块,对它的架构和可维护性以及运行性能都感到令我感到非常满意,可以说代表了我当时的最高水平。当然从今天来看里面还有一些缺点和经验不足之处。
例子代码我命名为GisCtl,是因为它原本是希望完成GIS的功能,但是实际上距离GIS还有一定的距离和偏差。该模块的底层算法和全部编码全部是我独自设计,这其中涉及了一系列图形捕捉算法,图元几何变换和逆变换,图层管理,缩略图,视图参数缓存环形队列,文件格式定义和IO等等。在编写该模块中的一些算法时我积累了很厚的演算草稿纸,用到了很多数学和几何知识,当然也感谢飘渺水云间BBS上ZOL版一些热心网友的支持和对我的解答。在编写这个模块时,涉及到一些设计模式,数据结构,算法的应用,比如鼠标在图上点击选择对象时,有一系列判别算法。比如图元和链接对象采用了是类似flyweight模式以节省内存(在我的另一篇随笔《图元几何变换与flyweight模式》中有讲解),比如视图缓存采用了环形的数据结构(在《环形视图堆栈》中有讲述),比如导航图采用了观察者(订阅)模式。该模块的使用方法集中在例子里,这里就不再叙述了。文档说明还暂时不能提供。目前该模块能读写我的自定义格式图形文件,以及mif格式文件。由于需求,该控件没有包装例如用鼠标创建,拖曳,变换对象的操作,但可以用代码来实现这些功能。
这个模块属于我实际工作的项目的一部分。我希望它能发挥更大的价值,而不仅仅是沉寂。
该模块文件名是LineViewCtl.dll, 命名控件是LineViewLib;该dll位于压缩包内,项目中也附带了两个从实际系统中导出的图形文件。
在模拟器中运行的效果图:(由于模拟器不支持中文,所以中文没能正确显示)
补充我在技术文档中画的一副图,表达了这个控件的内部组织结构:
范例代码:
http://files.cnblogs.com/hoodlum1980/JRL_GisCtlDemo.rar
GisCtlDemo.rar
发布一个用于WinCE的矢量图控件相关推荐
- Maplab:一个用于视觉惯性建图和定位研究的开源框架
摘要 鲁棒且精确的视觉惯性估计是当今机器人领域的重要挑战.能够用先验地图(prior map)进行定位(localize)并获得准确且无漂移的姿态估计,可以推动该系统的适应性.然而,目前大多数可用的解 ...
- 交互式甘特图控件VARCHART XGantt .NET ,如何从v5.1升级到v5.2?
VARCHART XGantt是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户所需求的应用程序.(我们领先的甘特图控件VARCHART XGantt可用于.NET,ActiveX和 ...
- 甘特图控件如何自定义绘图?DevExpress Winforms帮你忙
DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...
- 创建用于 ASP.NET 的分页程序控件
Dino Esposito Wintellect 2003 年 10 月 适用于: Microsoft® ASP.NET 摘要:解决向任何 ASP.NET 控件添加分页功能的问题.还为开发复合 ...
- Iocomp控件教程之Pie Chart——饼状图控件
Pie Chart--饼状图控件(Pie Chart)以饼状图形式显示每一个项目内容所占的百分比比重.在设计时.能够使用属性编辑器加入或者移除项目以及更改属性值.在执行时.使用AddItem,Remo ...
- 日历控件如何切换语言 vant_看看甘特图控件VARCHART XGantt的亮点
XGantt从1998年的第一个商用版本开始就致力于计划编制和项目管理方面控件的研究和开发,经过20多年的积累和沉淀,目前可为软件开发商和最终用户提供最顶级的计划编制和项目管理的控件产品,帮助用户快速 ...
- 甘特图控件VARCHART XGantt的功能亮点
甘特图(Xgantt)从1998年的第一个商用版本开始就致力于计划编制和项目管理方面控件的研究和开发,经过20多年的积累和沉淀,目前可为软件开发商和最终用户提供最顶级的计划编制和项目管理的控件产品,帮 ...
- 交互式甘特图控件VARCHART XGantt教程:如何打印和导出图表(ActiveX版)
VARCHART XGantt用于工业4.0项目管理.交互式的甘特图绝佳解决方案,世界级甘特图大师.是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户所需求的应用程序.(我们领先的甘 ...
- Android 宫格图控件MultiImageView(RecyclerView适配器中展示不定数量的图片)
Android 宫格图控件MultiImageView(RecyclerView适配器中展示不定数量的图片) 最近的github上的996ICU在IT界应该很多人听说了,不知道CSDN上什么是最受大家 ...
最新文章
- 微信打开网址后自动调用手机自带默认浏览器或提示选择浏览器打开如何实现...
- javascript的全局变量
- “指向指针的指针”的作用和应用
- 区间内的真素数(信息学奥赛一本通-T1411)
- android修改代码后运行不生效,Android Studio使用Kotlin时,修改代码后运行不生效问题...
- Unity中英对照汉化
- 基于TI Davinci架构的多核/双核开发高速扫盲(以OMAP L138为例),dm8168多核开发參考以及达芬奇系列资料user guide整理...
- 去掉 win7 “测试模式 windows7 内部版本7601” 字样
- android 陀螺仪滤波_高精度MEMS陀螺仪的滤波算法研究
- Perl的一些初级练习题
- 我的VSTO之路(三):Word基本知识
- 智能运动手环设计构思
- BeautifulSoup总结及contents内容分析
- php sku颜色,PHP 产品库 SPU、SKU 如何设计?
- 交叉编译ffmpeg
- html显示隐藏表格内外边框
- 魔方复原(BFS+剪枝)
- Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值
- 中级工程师职称有什么作用?有含金量吗?为什么要办?甘建二
- 线程3 boost::future
热门文章
- (Java)程序员应打破牢笼,展望更高层次的世界
- 无缝融合 ZStack与阿里云联手布局混合云市场
- 利用JS获取IE客户端IP及MAC的实现
- igbinary vs serialize vs json_encode
- JW Player使用简介
- 红帽子RedHat Linux 9.0安装图解(图)
- U盘也玩NTFS权限。
- 长短视频之争,长视频平台和短视频源码谁主沉浮?
- 2.1/2.2 系统目录结构, 2.3 ls命令, 2.4 文件类型, 2.5 alias命令
- noip2005 过河