vb.net绘制图形方法

简述VB.NET绘制图形

  学习VB.NET时,你可能会遇到VB.NET绘制图形问题,这里将介绍VB.NET绘制图形问题的解决方法,在这里拿出来和大家分享一下。

  1.创建Graphics对象

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

  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.VB.NET绘制图形首先要会使用画笔

  画笔是用来画线的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,宽度,高度,起始角,扫描角) 饼图也称扇图。该方法与DrawArc方法的参数一样,但是饼图比弧多出两条半径。

        (7)Drawstring方法——画字符串DrawString(String, Font, Brush, PointF)在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。

详细请参考:https://msdn.microsoft.com/zh-cn/library/system.drawing.graphics(v=vs.110).aspx

猜你喜欢

转载自blog.csdn.net/miaoyangzhi/article/details/53106946