Kalet的技术文档 Kalet的技术文档,涉及.NET、Andriod、Arduino、Python的软件开发,所有资料均从网络复制,版权归原著者所有。

VB.Net绘图基础知识

创建Graphics对象

在VB.Net中,绘制图形需要指定绘图表面。其中,窗体和所有具有Text属性的控件都可以作为绘制图形的表面。因为Graphics对象标识GDI+的绘图表面,所以,绘制图形必须先创建Graphics对象。创建Graphics对象有以下几种方法。VB.Net绘图基础知识

1>     使用CreateGraphics方法创建

这是一种常见的创建方法,其格式为:

Dim 对象名 As Graphics

对象名=窗体名(或控件名).CreateGraphics

2>     利用PaintEventArgs参数传递Graphics对象

通过窗体或控件的Paint事件可以直接完成图形绘制。在编写Paint事件处理程序时,参数PaintEventArgs就提供了图形对象。例如:

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

Dim g_paint As Graphics = e.Graphics



End Sub

3>     从Image 对象创建

还可以使用Image对象来创建,这时要使用Graphics.FromImage方法

2.       画笔

画笔是用来画线的GDI+对象,它是Pen类的一个实例。使用画笔可以绘制直线,曲线,以及矩形,圆形,多边形等形状的边框。

1>     建立画笔

格式:

Dim 画笔名 As New Pen(颜色[,宽度])

其中颜色即用画笔绘制线条的颜色,宽度是画笔绘制线条的宽度,单位是像素。宽度的默认值是1。

例如:

Dim mypen As New Pen(Color.Blue)

或Dim mypen As Pen = New Pen(Color.Blue)

2>     绘制线条或空心形状

建立画笔后,就可以用Graphics类的各种方法绘制直线,曲线或矩形,圆形等空心形状的线条。

(1)     DrawLine方法——画直线

DrawLine(画笔名,X1,Y1,X2,Y2)

其中,(X1,Y1)和(X2,Y2)是直线的起始点和终止点的坐标,他们可以是Integer值,也可以是Single值。当直线很短时,可以近似为点。

(2)     DrawRectangle方法——画矩形

DrawRectangle(画笔名,X,Y,宽度,高度)

其中,(X,Y)时矩形左上角的坐标,宽度和高度指定矩形的宽和长。

(3)     DrawPolygon方法——画多边形

DrawPolygon(画笔名,顶点)

其中,顶点是一个数组,该数组类型是Point或PointF结构,数组的各元素用来指定多边形各顶点的坐标。由Point结构指定的是Integer类型,而由PointF指定的是Single类型。

用Point或PointF结构来定义一个点的格式是:

Dim 点名 As New Point/PointF(x,y)

DrawPolygon方法的功能是按数组顶点的顺序连接成一个多边形,两个连续的顶点之间绘制一条边。

(4)     DrawEllipse方法——画圆和椭圆

DrawEllipse(画笔名,X,Y,宽度,高度)

方法中的x,y,宽度,高度定义的矩形是要绘制的圆或椭圆的外切矩形,它决定了所画椭圆的大小和形状。当宽度和高度相等时,所画的就是圆,否则就是椭圆。

(5)     DrawArc方法——画弧

DrawArc(画笔名,X,Y,宽度,高度,起始角,扫描角)

该方法与DrawEllipse方法相比多了起始角和扫描角两个参数,这可以看作是在截取圆或椭圆而形成的一段弧。起始角和扫描角都是以度为单位的,一般以水平向右的半径为0度,然后按顺时针方向画弧。起始角是开始画弧的角度,扫描角是顺时针方向增加的角度。当扫描角为360度时,画出的就是一个圆或者椭圆。

(6)     DrawPie方法——画饼图

DrawPie(画笔名,X,Y,宽度,高度,起始角,扫描角)
VB.Net绘图基础知识
饼图也称扇图。该方法与DrawArc方法的参数一样,但是饼图比弧多出两条半径。

3.       画刷与填充

在VB.Net中,如果要在闭合图形中填充颜色,图案,或者呈现文本,必须先创建画刷。画刷与绘图方法结合使用,可以用颜色或图案对图形进行填充。GDI+提供了5种画刷,这里只介绍两种常用的。

1>     单色画刷(SolidBrush)

利用SolidBrush类可以定义画刷并初始化一个指定的单一颜色。格式为:

Dim 画刷名 As New SolidBrush(颜色)



Dim 画刷名 As Brush

画刷名 = New SolidBrush(颜色)

2>     模式填充画刷(HatchBrush)

利用HatchBrush类可以定义一个用特定图案填充图形的画刷。格式为:

Dim 画刷名 As New HatchBrush(类型,前景色[,背景色])

其中,类型用来指定填充的图案,它是HatchStyle枚举类型,该枚举类型有50多个成员,每个成员提供一种图案。当在代码编辑窗口中输入HatchStyle后,系统会自动弹出一个HatchStyle枚举类型成员列表供用户选择。

4.       绘制文字

在VB.Net中,窗体或图片框中的文字被作为图形处理,在文本框,标签,列表框等控件中,可以通过文本和图形两种方式文成文字的输出。

通过Graphics类中的DrawString方法可以实现图形文字的输出,使用时,要先定义画刷,然后用画刷画出文字。

1>     字体

输出文字前要先创建字体对象,并先指定字体的名称,大小,样式等。字体对象通过Font类来创建,格式为:

Dim 字体对象 As New Font(名称,大小[,样式[,量度单位]])

其中,名称是指定字体名称的字符串,如隶书,Symbol等。

样式是FontStyle枚举类型。其成员有:

Bold,Italic,Regular,Strikeout(中划线),Underline

量度单位是用来指定字体大小的单位,它是GraphicsUnit枚举类型。其成员有:

Display  1/75英寸

Document  文档单位(1/300英寸)

Inch  英寸

Millimeter  毫米

Pixel  像素

Point  打印机点(1/75英寸)

World 通用

参数样式和量度可以省略,字体的缺省值为常规样式和Point大小单位。样式可以同时指定多个,之间用Or连接。

2>     DrawString方法

格式为:

DrawString(字符串,字体,画刷,点)

DrawString(字符串,字体,画刷,矩形)

DrawString(字符串,字体,画刷,X,Y)

点用来指定文本输出的开始位置,它是PointF结构类型。矩形指定文本输出位置,它是RectangleF结构类型。XY指定文本输出的起始位置,都是Single类型。

5.       删除Graphics对象和清屏

1>     删除Graphics对象

Graphics对象使用完后应及时删除,以释放该对象占用的资源,使用Dispose方法。

2>     清屏

利用Graphics类的Clear方法可以清除画图工作区的所有内容,并用指定的背景颜色进行填充。

格式:Clear(颜色)
VB.Net绘图基础知识
清除窗体的画面,并用颜色填充整个窗体。


Tags:

发布: Kalet 分类: VB、VB.NET 评论: 0 浏览: 108
留言列表