实现绘图软件的技术方案
所属栏目:软件开发论文
发布时间:2011-02-26 13:00:43 更新时间:2011-02-26 13:00:43
摘要:鉴于绘图软件实现的困难,本文提出一种绘图软件的实现方法,并经实践检验,结果证明本文提出的方法可行、有效。
关键词:绘图,VisualBasicPictureBox
Abstract:Inviewofthedifficultiesofmappingsoftware,thispaperpresentsamethodofmappingsoftware,andbythepracticeoftesting,resultsshowthattheproposedmethodisfeasibleandeffective.
Keyword:mappingVisualBasicPictureBox
0引言
在各行各业中,绘图软件受到了广泛的应用,并闪烁着美丽的光环,然而其实现却比较复杂,因而在实现中受到了限制。
VisualBasic是美国Microsoft公司出产的包含协助开发环境的事件驱动编程语言,其简单,实用,在传统编程、网络、数据库、多媒体等多个方面都有其广泛的应用并受到相当的重视。
既然VisualBasic如此优秀,那么利用VisualBasic实现绘图软件是否可行呢?如果可行的话又如何实现呢?
1. 实现的基础
要利用VisualBasic实现绘图软件,主要需要利用VisualBasic的PictureBox控件、通用对话框控件、顺序语句、选择语句和循环语句等。
PictureBox控件是VisualBasic的一个非常基本的控件,其主要用途是显示来自位图、图标、元文件,以及来自增强的元文件、JPEG文件或者GIF文件的图形。当控件不足以显示整幅图像的时候该控件可以裁剪图像以适应控件的大小,并且可以作为容器以容纳其他控件。
PictureBox控件的主要属性有AutoSize、BackColor、Picture、ScaleMode、ScaleWidth、ScaleHeight,其中Autosize属性可以决定该控件是否自动调整大小以显示所有内容,BackColor属性返回对象中文本和图形的背景色,Picture属性返回/设置控件中显示的图形,可以通过在设计中直接选择图形文件或者利用LoadPicture()函数装入图形。
PictureBox控件的主要事件有MouseDown、MouseMove和MoveUp事件,三事件分别为鼠标按下、鼠标移动和鼠标抬起三种不同的事件,均有Button、X、Y三个参数,分别对应于当时所使用的键(鼠标左键还是右键),当时鼠标指针所处的横坐标和纵坐标。
PictureBox控件的主要方法有Line、Circle和Pset三种,Line方法主要用于绘制直线或者矩形,可以选择使用B参数和F参数,如果加上B参数则表示绘制矩形,F参数则表示用矩形的颜色来填充矩形。Circle方法用于绘制圆、椭圆、圆弧和扇形,该方法格式为:[对象.]circle[step](x,y)半径[,[颜色][,[起始点][,终止点][,长短轴比率]]],该方法中可以利用Step参数表示正在采用当前作图位置的相对值,通过长短轴比率控制是椭圆还是圆。Pset方法用于绘制点。
PictureBox控件使用的坐标系分为VB坐标系统和用户自定义坐标系统两种。在VisualBasic坐标系统中,默认的坐标原点是对象的左上角,横向向左为x轴的正方向,纵向向下是y轴的正方向,窗体实际可以使用的高度和宽度使用ScaleHeight和ScaleWidth属性确定。对于PictureBox控件的自定义坐标系统来说,往往当窗体所绘制的图产生与数学坐标系相同效果的时候使用,可以使用Scale方法来建立用户坐标系,其语法如下:[对象.]Scale[(xLeft,yTop)-(xRight,yButton)];其中,使用PictureBox控件创建用户坐标系统的时候需要指定相应控件,否则默认为窗体,(xLeft,yTop)代表的是对象左上角所处的坐标值,(xRight,yButton)则代表对象右下角所处的坐标值,此外ScaleMode属性确定了坐标系统所使用的度量单位,默认为TWIP。
通用对话框控件通常可以被用来在窗体上实现六种标准对话框,分别是打开、另存为、颜色、字体、打印机和帮助。在绘图软件的使用中主要使用打开标准对话框和另存为标准对话框。
顺序语句主要包括赋值语句、Msgbox语句和InputBox语句等。赋值语句用于实现值的赋予、累加和计数等;Msgbox语句主要作用是打开一个消息框,等待用户选择一个按钮;InputBox函数的作用是打开一个对话框,等待用户输入内容,可以用于人机交互。
选择语句主要包括IF语句、IIF语句和Selectcase语句,主要用于实现选择结构。
循环语句主要包括For循环语句和Do…Loop循环语句,主要用于按照规定的条件反复地执行某些操作。
2. 综合应用
在绘图软件实现的过程中,主要工作区域是由PictureBox控件组成的,因此各种操作也是围绕PictureBox控件而进行的。
图形与图像的绘制需要考虑绘图软件的输入方法,这首先主要涉及到输入的图形问题,在VisualBasic的多个控件中有单选按钮控件,选择一组中的一个单选按钮控件可以保证同时只选择一种情况,利用该控件的这种特性便可以在多种图形中选择其中的一种来进行绘制了。选择了需要输入的类型之后就需要考虑什么时候输入的问题,由于VisualBasic所使用的命令都是需要参数的因此往往需要在获得了全部信息之后才能使用命令来进行绘制,使用鼠标绘制的话往往会在PictureBox控件的MouseDown事件中发生。
图形与图像的绘制还需要考虑输入的坐标问题,这里主要有两种方法,其一是通过鼠标单击来确定,其二则通过直接输入坐标来实现。在第一种实现方法中,直线、矩形等需要起始点和终止点两个点的坐标参数,那么如何确定两个输入点的先后并且与其他图形相互区别呢?在这里可以使用VisualBasic中的选择语句,利用输入的次数的奇偶数不同而分辨起始点与终止点,同时可以在状态栏显示当前所获得的参数是哪一组参数和参数的值;对于第二种方法来说,可以利用文本框与命令按钮的搭配来实现,其中文本框用于输入坐标,而命令按钮则用来执行相应的操作。
填充问题也是绘图软件的一个大问题,在绘图软件的使用过程中,填充通常有两种方式,其一是在绘制某个图形的过程中直接绘制已经填充的图形,其二则是在绘制之后再使用填充来实现填充的效果。对于第一种方式而言,我们可以在绘制的过程中直接利用参数来进行绘制;对于第二种方式而言则需要考虑利用覆盖的方法,首先确定对哪一个图形来进行填充,然后在该图形的上面重新绘制一个外型一模一样但却已经经过了填充的图形,这样一来,“填充”便完成了。如果需要对整副图像的背景进行填充则可以直接使用BackColor属性来进行操作。
图像大小的改变和只取图像中的一部分对于绘图软件来说也是至关重要的,对于这两者而言比较有难度的主要是图像的重构的时候需要使图像的大小与PictureBox控件的大小相互适应。要实现这个目的主要有两种方法,第一个方法通常是直接利用Picture属性,其二则是根据Point方法来依次获得各个像素点的红色亮度值、绿色亮度值和蓝色亮度值,然后再根据红色亮度值、绿色亮度值和蓝色亮度值来重新进行绘制,第一种方法通常用于整副图像的使用,第二种方法则通常用于对图像中部分区域进行操作。
对于绘图文件的打开、保存操作而言,主要使用通用对话框的打开对话框和另存为对话框,对于新建文件则可以直接利用PictureBox控件的Cls方法。该方法清除通过画图方法画出的图形或者用Print语句打印的信息并把光标移动到对象的左上角(0,0),cls方法一般的格式为:对象名,Cls。
3. 验证与结论
为了验证本文所提出的方法是否可行和有效,笔者利用VisualBasic6.0根据本文提出的方法编制了绘图软件,所编制的绘图软件使用便利并可以实现多种功能。实验结果证明本文提出的方法可行、有效。
参考文献:
罗朝盛,VisualBasic程序设计教程,人民邮电出版社,2005
刘新民,VisualBasic6.0程序设计,清华大学出版社,2004