GDI+实现自定义集装箱贝位图方法研究.docVIP

GDI+实现自定义集装箱贝位图方法研究.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文档。上传文档
查看更多
GDI实现自定义集装箱贝位图方法研究

GDI+实现自定义集装箱贝位图方法研究   摘 要:为了解决集装箱船舶贝位图由以往人工绘制带来的各种问题,达到由终端用户在作业现场应用计算机自动绘制的目的,采用DOTNET Framework封装的GDI+接口及其相关方法,通过在VISUAL Basic.NET 编程环境中实现终端用户绘制一个基础网格,根据每次鼠标点击的网格位置、点的颜色以及二次点击的水平和垂直距离,判断如何绘制贝位矩阵,应用GDI+实现贝位绘制,获得了以鼠标拖动或点击的方式绘制集装箱贝位图的模式,得到了一种通用的使用GDI+技术动态创建集装箱贝位图的方法。   关键词:贝位; GDI+; 自定义图形; 集装箱   中图分类号:TN91934 文献标识码:A 文章编号:1004373X(2012   DOTNET Framework 为操作图形提供了 GDI+ 应用程序编程接口,GDI+ 是 Windows 图形设备接口的高级实现,通过使用 GDI+,可以创建图形、绘制文本以及将图形图像作为对象操作,软件开发人员可以使用 GDI+ 在 Windows 窗体和控件上方便地呈现图形图像,近年来集装箱发展突飞猛进,随着大型集装箱船舶、集装箱码头及集装箱场站的建设,传统人工绘制集装箱贝位图的方法已不能满足现场作业人员的需要,信息系统应用也在向图形化发展,由软件开发人员来绘制图形已经不能满足终端用户的需求,很多场景需要终端用户自己绘制图形,本文描述了在Visual Basic.NET编程环境中如何开发用户自定义集装箱贝位图的编程方法,使用户可以方便地以鼠标点击的方式绘制集装箱贝位图。   1 设计思路   (1) 创建一个PictureBox,重写它的Paint事件\[1\],以其零坐标为基点,绘制一个10行20列的网格(单格长宽均为20),并在左端标注贝层,上端标注贝列编号;   (2) 重写PictureBox的MouseDown事件,判断是否为左键点击,右键点击无效,二次左键点击为一组,定义一个mark变量,用以鉴别哪两次点击为一组\[2\];   (3) 鼠标点击事件中根据点击的位置计算选择的网格,在第一次有效点击时根据坐标计算网格、取网格的颜色并记录在内存中\[3\],用红色画笔填充该网格;   (4) 在第二次有效点击时同样计算所选择的网格,并判断??格的颜色,比较二次所选网格的横纵坐标,用不同的颜色填充二次选择网格形成的矩阵\[4\];   (5) 当二次所选网格的颜色都不等于蓝色时,用蓝色填充网格矩阵,示意定义贝位;   (6) 当二次所选网格的颜色都等于蓝色时,用系统色填充网格矩阵,示意取消已定义的贝位\[5\];   (7) 当第一个所选网格为蓝色、第二个所选网格为红色时(二次点击选择了同一个网格),用系统色填充该网格\[6\],示意取消该贝位的定义;   (8) 当第一个所选网格为蓝色、第二个所选网格不是蓝色也不是红色时(第一次选择了已定义的贝位,第二次选择了未定义的贝位),用蓝色填充该第一个网格,示意取消本次定义贝位的操作\[7\];   (9) 当第一个所选网格不是蓝色、第二个所选网格是蓝色时(第一次选择了未定义的贝位,第二次选择了已定义的贝位),用系统色填充该第一个网格\[8\],示意取消本次定义贝位的操作;   (10) 当第二个所选网格的横/纵坐标小于第一个所选网格的横/纵坐标时(默认从左上向右下绘图,否则为无效定义),如果第一个所选网格为蓝色则用蓝色填充,否则用系统色填充,示意取消本次定义贝位操作\[9\]。   2 实现方法   (1) 定义相关变量,用以执行画笔操作或存储相关属性\[10\],重写PictureBox的Paint事件,绘制网格并标注贝行和贝列编号,主要代码如下:   ′绘制单格长宽均为20的10行20列的网格   g_line.DrawRectangle(pen_line,20 + 20 * i,20 + 20 * j,20,20)   ′绘制贝列编号   g_line.DrawString(i,Me.Font,Brushes.Black,20 * i + 6,6)   ′个位数的列编号   g_line.DrawString(i,Me.Font,Brushes.Black,20 * i + 2,6)   ′十位数的列编号   g_line.DrawString(80 + j * 2,Me.Font,Brushes.Black,2,20 * 10 + 5 20 * j)   ′绘制贝层号   (2)重写PictureBox的MouseDown事件,执行定义贝位操作,主要代码如下:   p.X = e.X,p.Y = e.Y   ′取当前点的

文档评论(0)

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

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

1亿VIP精品文档

相关文档