基于VB.NET城市地块面积打印程序设计及实现.docVIP

基于VB.NET城市地块面积打印程序设计及实现.doc

  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文档。上传文档
查看更多
基于VB.NET城市地块面积打印程序设计及实现

基于VB.NET城市地块面积打印程序设计及实现要加单位,放在“测绘、测量”栏目 柳州市勘察测绘研究院 2011年8月《城市建设》合同号:1007994 业务员:阮华彪 摘要:本文介绍了城市测量地块面积计算公式及测量坐标系到计算机屏幕坐标系转换的数学基础,然后详述了VB.NET编写面积打印程序的思路、处理方法及程序中需要考虑的细节问题,并给出了实现部分功能的程序代码。 关键词:VB.NET编程城市地块面积程序设计 1、引言 在城市测量工作中,地块面积测量是比较常见的测绘工作,面积测量成果一般要附有坐标表、略图、面积数值、标题、说明、责任栏、相邻界址点边长等信息。如果仅编写单个地块的面积打印程序,这是比较容易实现的。但是,在实际工作中,一方面,一个总地块往往包含有多个分类小块,面积测量成果需要反映各类地块的信息;另一方面,也需要考虑面积成果的紧凑性,比如有时在页面上打印一块面积信息,效果可能比较好,有时在页面上打印多块面积信息,看起来比较紧凑,而且比较节约纸张。如果综合考虑各种因素,编写一个面积打印效果较好的程序,还是不容易的。 2、坐标法面积计算公式 设ABC……N为任意多边形,其顶点的坐标分别为(,),(,),……,(,)。 从图中可以看出,该任意多边形的面积P为: 由此可得下式: 式中,n为多边形顶点的个数,,。 3、测量坐标系到计算机屏幕坐标系的换算 如图3-1和图3-2所示,对实地点P,测量坐标系转换到计算机屏幕坐标系中的坐标计算公式如下: 其中,为点P在测量坐标系中的坐标,为要显示区域的最小坐标(左下角),为最大测量坐标(右上角)。为点P在计算机屏幕显示区的屏幕坐标,为屏幕显示区的最小坐标(左上角),为屏幕显示区最大坐标(右下角),Sx,Sy为测量坐标到屏幕坐标换算的比例系数,计算公式如下: 为了使得在计算机屏幕上显示的图形不至变形,从测量坐标到屏幕坐标换算的比例系数Sxy,在X方向和Y方向应采用相同的比例系数,即Sxy=Min(Sx,Sy)。 4、VB.NET打印机制 VB.NET打印时,要调用PrintDocument对象的Print方法,这个方法不生成任何打印输出,但会发出PrintPage事件,PrintPage事件传递e变元,提供当前Printer对象的Graphics属性以及其他成员,我们就在PrintPage事件处理器中编写打印输出代码。如果需要打印其他页面,则要在退出事件处理器之前将e.HasMorePages属性设置为True,这就反复激发PrintPage事件,直到打印完全部页面。所有页面打印完成后,将e.HasMorePages属性设置为False,不再触发PrintPage事件,打印过程流程如下: 5、面积打印程序流程图 我们用VB.NET设计面积打印程序时,就是利用VB.NET的打印机制,通过计算信息,在程序运行中控制e.HasMorePages属性,不断激发PrintPage事件,在当前页面上打印信息。流程图如下: 6、程序设计中需要考虑的细节 6.1作者设计的面积程序打印效果图 6.2面积数据文件格式 假如面积数据文件中采用如下坐标格式: …… 界址点名,X,Y 界址点名,X,Y …… 在描述某块面积信息时,这种坐标格式很适用,例如A块面积由1,2,3,4,5,6连续序号界址点对应的面积,我们在描述其面积打印信息时,可写成…1-6…。 6.3坐标表页数的确定 设一行打印两个坐标,页数用Page表示,页面可打印区的高度为PrintHeight、可打印的行数为PageRow、行间距为a、坐标文字高度XYHeight、坐标总数为XY.Count,则 6.4面积略图绘制 Sk为比例缩放系数,为了在绘图区全部画出图形,Sk选取Sx和Sy比例系数最小值,我们用e.Graphics.DrawString方法可以绘制点名,Plot为绘图轨迹,当我们用Plot.AddLine方法创建完线段后,可以直接用e.Graphics.DrawPath方法绘出。 6.5程序中控制页面生成 一方面,当前页面可打印空间已经用完,或者剩下空间不能很好存放后面的信息,则要考虑生成新页;另一方面,如果打印完一页坐标表后,当剩下空间较小,而要在页面上绘制比较大的地块,点号也较多,这样的略图看起来效果很不得体,这种情况也要考虑换页。为了在程序中控制合理页面的生成,我们可以使用一个可打印区比PK(即剩下空间高度除以可打印范围高度)变量,通过判断PK值,来确定是否要把当前信息打印在当前的页

文档评论(0)

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

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

1亿VIP精品文档

相关文档