![[VB] chp11 绘图.doc_第1页](http://file.renrendoc.com/FileRoot1/2020-1/18/67f1145d-3e40-4c21-9100-628ee0c44395/67f1145d-3e40-4c21-9100-628ee0c443951.gif)
![[VB] chp11 绘图.doc_第2页](http://file.renrendoc.com/FileRoot1/2020-1/18/67f1145d-3e40-4c21-9100-628ee0c44395/67f1145d-3e40-4c21-9100-628ee0c443952.gif)
![[VB] chp11 绘图.doc_第3页](http://file.renrendoc.com/FileRoot1/2020-1/18/67f1145d-3e40-4c21-9100-628ee0c44395/67f1145d-3e40-4c21-9100-628ee0c443953.gif)
![[VB] chp11 绘图.doc_第4页](http://file.renrendoc.com/FileRoot1/2020-1/18/67f1145d-3e40-4c21-9100-628ee0c44395/67f1145d-3e40-4c21-9100-628ee0c443954.gif)
![[VB] chp11 绘图.doc_第5页](http://file.renrendoc.com/FileRoot1/2020-1/18/67f1145d-3e40-4c21-9100-628ee0c44395/67f1145d-3e40-4c21-9100-628ee0c443955.gif)
已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十一章 绘 图 11-51第十一章 绘 图11-1 绘图基本观念在VB2005中绘图包含下列几个基本程序:1.建立或取得Graphics对象 ( 绘图对象 ),一般就是俗称画布。2.定义画笔,提供绘图指令在绘图对象 ( 画布 ) 上绘画。3.利用Graphics对象的DrawLine、DrawString、DrawImage等方法绘制各种的图形。4.释放Graphics对象所占用的系统资源。11-2 绘图基本指令11-2-1 绘图对象的建立 建立绘图对象 (CreateGraphics ) Graphics使用CreateGraphics。语法Dim 绘图对象 As Graphics = 控制组件. CreateGraphics 目的利用Graphics对象所绘制的图形显示在控制组件上。例1如设绘图对象g,其控制组件为窗体。Dim g As Graphics = Me.CreateGraphics例2如设绘图对象g1,其控制组件为图片方块 (PictureBox1)。Dim g1 As Graphics = PictureBox1.CreateGraphics11-2-2 画 笔画笔 (Pen ) 如绘画使用的画笔,提供绘图指令在绘图对象上绘画,画笔有二个特性:一为颜色,二为粗细。语法Dim 画笔变数 As New System.Drawing.Pen(Color.颜色, 粗细)目的设定画笔的颜色与粗细。例如设画笔变量p1,其颜色为蓝色与粗细为2。Dim p1 As New System.Drawing.Pen(Color.Blue, 2)11-2-3 画 线DrawLine是在绘图对象上绘出一直线,画线 (DrawLine) 就必须用到画笔,并且赋予起始点坐标及终点坐标。语法绘图对象.DrawLine ( 画笔变数, x1, y1, x2, y2)目的依设定画笔的颜色与粗细,在绘图对象上绘出一直线。说明1.直线颜色与粗细由画笔决定。2.x1,y1是直线的起始点坐标。3.x2,y2是直线的终点坐标。例如在窗体上 (50,50) 至 (50,250) 划一直线,画笔颜色为蓝色与粗细为2。Dim g As Graphics = Me.CreateGraphicsDim p1 As New System.Drawing.Pen(Color.Blue, 2)g.DrawLine(p1, 50, 50, 50, 250)说明1.定义画布绘图对象为窗体。2.定义画笔的颜色与粗细。3.利用画笔在画布上由 (50,50) 至 (50,200) 划一直线【注】程序可将三行叙述合并为一行,其叙述如下:Me.CreateGraphics.DrawLine(p1, 40, 30, 250, 30)11-2-4 清 除Clear是将绘图对象上内容清除 (Clear ) 为指定的颜色。语法绘图对象. Clear ( 颜色 )目的设定绘图对象清除为指定的颜色。例将图片方块 (PictureBox1),清除为白色。PictureBox1.CreateGraphics.Clear (Color.White)11-2-5 移 除Dispose是将绘图对象从内存中移除 (Dispose )。语法绘图对象.Dispose()例Dim g As Graphics = Me.CreateGraphicsg.Dispose()实例11_02_01将图片方块 (PictureBox1),清除为白色。1.在窗体上以蓝色粗细为2号画笔划一直线。2.在图片方块上以红色粗细为3号画笔划一直线。3.设一清除按钮,当按下该钮时,窗体清除为黄色,图片方块清除为白色。题目说明1.当按画线钮时,于窗体与图片方块各画一条线,显示结果如图11-1所示:图11-1 按画线钮时显示2.当按清除钮时,显示结果如如图11-2所示:图11-2 按清除钮时显示程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p1 As New System.Drawing.Pen(Color.Blue, 2) 设定画笔p1 g.DrawLine(p1, 40, 30, 250, 30) 在窗体上画线 Dim p2 As New System.Drawing.Pen(Color.Red, 3) 设定画笔p2 PictureBox1.CreateGraphics.DrawLine(p2, 40, 30, 150, 30) 在图片方块上画线 End Sub Private Sub Button2_Click(ByVal) Handles Button2.Click PictureBox1.CreateGraphics.Clear(Color.White) 窗体清除为黄色 Me.CreateGraphics.Clear(Color.Yellow) 图片方块清除为白色 End Sub Private Sub Button3_Click(ByVal) Handles Button3.Click EndEnd Sub11-3 绘图指令11-3-1 画字符串 (DrawString )DrawString是在绘图对象上显示字符串。语法绘图对象.DrawString(字符串, New Font(字型名称, 字体大小), Brushes.颜色, x1,y1)目的设定在绘图对象上显示字符串。说明x1,y1是字符串的左上角坐标位置。实例11_03_01如在窗体上 (30,20) 处显示绘图指令测试,字型名称为标楷体,颜色为红色与字体大小为24。程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics g.DrawString(绘图指令测试, New Font(标楷体, 24), Brushes.Red, 30, 20) End Sub结果X1(30)Y1(20)图11-3 画字符串11-3-2 画矩形 (DrawRectangle ) DrawRectangle是在绘图对象上绘一矩形或正方形。语法绘图对象. DrawRectangle (画笔变数, x1, y1, x2, y2)目的设定在绘图对象上绘一矩形或正方形。说明1.矩形的边框颜色与粗细由画笔决定。2.x1,y1是矩形的左上角坐标位置。3.x2,y2矩形的宽与高 ( 当x2,y2相同时为正方形 )。实例11_03_02如在窗体上 (50, 70) 处画一大小为 (100, 80) 的矩形,边框颜色为蓝色与粗细为3。程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p1 As New System.Drawing.Pen(Color.Blue, 3) g.DrawRectangle(p1, 50, 70, 100, 80)End Sub 结果X1(50)Y1(70)X2(100)Y2(80)图11-4 画矩形11-3-3 画椭圆形DrawEllipse是在绘图对象上绘一椭圆形 (DrawEllipse ) 或圆形。语法绘图对象. DrawEllipse ( 画笔变数, x1, y1, x2, y2)目的设定在绘图对象上绘一椭圆形或圆形。说明1.椭圆形或圆形的边框颜色与粗细由画笔决定。2.x1,y1是椭圆形或圆形的左上角坐标位置。3.x2,y2椭圆形或圆形的宽与高 ( 当x2,y2相同时为正圆形 )。实例11_03_03例如在窗体上 (50, 70) 处画一大小为 (100, 80) 的椭圆形,边框颜色为黑色与粗细为2。程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p2 As New System.Drawing.Pen(Color.Black, 2) g.DrawEllipse(p2, 50, 70, 100, 80)End Sub结果X1(100)Y2(80)X1(50)Y1(70)图11-5 画椭圆 ( 外框矩形说明用 )11-3-4 画圆弧DrawArc是在绘图对象上绘一圆弧 (DrawArc )。语法绘图对象. (DrawArc ( 画笔变数, x1, y1, x2, y2,起始角度,终止角度 ) )目的设定在绘图对象上绘一圆弧。说明1.圆弧的边框颜色与粗细由画笔决定。2.x1,y1是圆弧的左上角坐标位置。3.x2,y2圆弧的宽与高。4.角度以一圆周为360度计。5.终止角度其为正数时表顺时针方向绘图,负数时表逆时针方向绘图。实例11_03_04如在窗体上 (50, 70) 处画一大小为 (100, 80) 的顺时针方向120度的圆弧,边框颜色为黑色与粗细为3。程序内容Private Sub Button1_Click(ByVal.) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p2 As New System.Drawing.Pen(Color.Black, 3) g.DrawArc(p2, 50, 70, 100, 80, 0, 120) End Sub结果X2(100)Y2(80)X1(50)Y1(70)图11-6 画圆弧 ( 外框矩形与椭圆说明用 )11-3-5 画饼形图DrawPie是在绘图对象上绘一饼形图。语法绘图对象. DrawPie ( 画笔变数, x1, y1, x2, y2,起始角度,终止角度 )目的设定在绘图对象上绘一饼形图。说明1.饼形图的边框颜色与粗细由画笔决定。2.x1,y1是饼形图的左上角坐标位置。3.x2,y2饼形图的宽与高。4.角度以一圆周为360度计。5.终止角度其为正数时表顺时针方向绘图,负数时表逆时针方向绘图。实例11_03_05如在窗体上 (50, 70) 处画一大小为 (100, 80) 的逆时针方向120度的饼形图,边框颜色为蓝色与粗细为3。程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p1 As New System.Drawing.Pen(Color.Blue, 3) g.DrawPie(p1, 50, 70, 100, 80, 0, -120)End Sub结果Y2(80)X2(100)X1(50)Y1(70)图11-7 画扇形 ( 外框矩形与椭圆说明用 )11-3-6 画多边形DrawPolygon是在绘图对象上绘一多边形图 (DrawPolygon )。语法绘图对象. DrawPolygon ( 画笔变数, Point()目的设定在绘图对象上绘一封闭的多边形图。说明1.封闭的多边形的边框颜色与粗系由画笔决定。2.Point()是的顶点。实例11_03_06如在窗体上绘一封闭的多边形其顶点分别为 (50,5)、(95,30)、(80,95)、(20,95)、(5,30),边框颜色为黑色与粗细为2。程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p2 As New System.Drawing.Pen(Color.Black, 2) Dim pa() As Point = New Point(50, 5), New Point(95, 30), _ New Point(80, 95), New Point(20, 95), New Point(5, 30) g.DrawPolygon(p2, pa) End Sub结果图11-8 画多边形11-3-7 画曲线DrawCurve是在绘图对象上绘一曲线图。语法绘图对象. DrawCurve ( 画笔变数, Point()目的设定在绘图对象上绘一曲线图。说明1.曲线的颜色与粗系由画笔决定。2.Point()是曲线的顶点。实例11_03_07如在窗体上绘制一条曲线其顶点分别为 (150, 5)、(195, 30)、(180, 95)、(120, 95)、(105, 30),线条颜色为黑色与粗细为2。程序内容 Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p1 As New System.Drawing.Pen(Color.Black, 2) Dim pa() As Point = New Point(50, 5), New Point(95, 30), _ New Point(80, 95), New Point(20, 95), New Point(5, 30) g.DrawCurve(p1, pa) End Sub 结果图11-9 画曲线说明曲线的顶点 (Point() 部份可由数组来设定初值,例中如:Dim pb() As Point = New Point(150, 5), New Point(195, 30), New Point(180, 95)_, New Point(120, 95), New Point(105, 30)【注】有关数组将于下一章 ( 第十二章 ) 介绍。11-3-7 画贝兹曲线DrawBezier是在绘图对象上绘一贝兹曲线。语法绘图对象. DrawBezier ( 画笔变数, Point()目的设定四个指定点在绘图对象上绘一贝兹曲线。实例11_03_07如在窗体上绘制一条贝兹曲线其四点分别为 (60,140)、(90, 40)、(120,100)、(150, 20),线条颜色为黑色与粗细为2。程序内容 Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p1 As New System.Drawing.Pen(Color.Black, 2) g.DrawBezier(p1, New Point(60, 140), New Point(90, 40), New Point(120, 100), New Point(150, 20) End Sub 结果图11-10 画贝兹曲线11-3-8 重设(TranslateTransform )TranslateTransform绘图对象重设左上角坐标位置。【语法】 绘图对象. TranslateTransform ( x, y)【说明】1. 重设的左上角坐标位置。2. x, y是重设的左上角坐标位置,右移x点及下移y点如为负数则表示相反。【实例11_03_08】在窗体上绘圆,重设的左上角坐标位置往右移20,画10个圆结果如图11-11所示。图11-10 输出结果【程序内容】Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p1 As New System.Drawing.Pen(Color.Blue, 1) Dim i As Integer For i = 1 To 10 g.DrawEllipse(p1, 10, 10, 100, 100) g.TranslateTransform(20, 0) 重设的左上角坐标位置往右移 NextEnd SubPrivate Sub Button2_Click(ByVal) Handles Button2.Click EndEnd Sub11-3-9 旋转(RotateTransform)RotateTransform是将绘图的角度旋转。【语法】绘图对象. RotateTransform(角度)【说明】1. 旋转时以坐标(0,0)为原点。2. 正值表顺时针旋转,负值表逆时针旋转。【实例11_03_10】在窗体上重设的左上角坐标位置,在(20,20)画一正方形并旋转10度画36个正方形;再向右移200在(0,0)处画一正方形并旋转10度画36个正方形,结果如图11-12所示。图11-12 输出结果【程序内容】 Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim p1 As New System.Drawing.Pen(Color.Blue, 1) g.TranslateTransform(100, 100) Dim i As Integer For i = 1 To 36 g.DrawRectangle(p1, 10, 10, 50, 50) g.RotateTransform(10) Next g.TranslateTransform(200, 0) 向右移 For i = 1 To 36 g.DrawRectangle(p1, 0, 0, 50, 50) g.RotateTransform(10) Next End Sub Private Sub Button2_Click(ByVal .) Handles Button2.Click End End Sub11-3-10 缩放(ScaleTransform)ScaleTransform是将绘图图形缩放。【语法】绘图对象. ScaleTransform(宽,高)【说明】宽与高为图形片缩放比率,如图形希望宽度缩小为一半,高度放大为2倍时,程序写法如下。【实例11_03_10】在窗体上画字符串每次向右移5,向下移15放大1.1倍经6次结果如图11-13所示。图11-13【程序内容】 Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim i As Integer For i = 1 To 6 g.DrawString(放大测试, New Font(标楷体, 18), Brushes.Red, 10,10) g.ScaleTransform(1.1, 1.1) 放大1.1倍 g.TranslateTransform(5, 15) 向右移5向下移15 Next End Sub11-4 区块填满11-4-1 画实心矩形FillRectangle是在绘图对象上绘制一实心矩形或正方形。语法绘图对象. FillRectangle (Brushes.颜色, x1, y1, x2, y2)目的设定在绘图对象上绘一实心矩形或正方形。说明1.x1,y1是矩形的左上角坐标位置。2.x2,y2矩形的宽与高。例如在窗体上 (20, 70) 处画一大小为 (80, 80) 的正方形,填满颜色为蓝色。Dim g As Graphics = Me.CreateGraphicsg.FillRectangle(Brushes.Blue, 20, 70, 80, 80)11-4-2 画实心椭圆形FillEllipse是在绘图对象上绘制一实心椭圆形或圆形。语法绘图对象. FillEllipse (Brushes.颜色, x1, y1, x2, y2)目的设定在绘图对象上绘一实心椭圆形或圆形。说明1.x1,y1是椭圆形或圆形的左上角坐标位置。2.x2,y2椭圆形或圆形的宽与高。例如在窗体上 (120, 70) 处画一大小为 (80, 80) 的正圆形,填满颜色为黄色。Dim g As Graphics = Me.CreateGraphicsg.FillEllipse(Brushes.Yellow, 120, 70, 80, 80)11-4-3 画实心饼形图FillPie是在绘图对象上绘制一实心饼形图。语法绘图对象.FillPie(Brushes.颜色, x1, y1, x2, y2,起始角度,终止角度 )目的设定在绘图对象上绘一实心饼形图。说明1.x1,y1是饼形图的左上角坐标位置。2.x2,y2饼形图的宽与高。3.角度以一圆周为360度计。4.终止角度其为正数时表顺时针方向绘图,负数时表逆时针方向绘图。例如在窗体上 (320, 70) 处画一大小为 (80, 80) 的逆时针方向120度的饼形图,边框颜色为蓝色与粗细为1。Dim g As Graphics = Me.CreateGraphicsg.FillPie(Brushes.Red, 320, 70, 80, 80, 0, -120)11-4-4 画实心多边形FillPolygon是在绘图对象上绘制一实心多边形图。语法绘图对象. FillPolygon (Brushes.颜色, Point()目的设定在绘图对象上绘一实心的多边形图。说明1.封闭的多边形的填满颜色由Brushes.颜色决定。2.Point()是多边形的顶点,可由数组设定初值。例如在窗体上绘一封闭的多边形其顶点分别为(50, 5)、(95, 30)、(80, 95)、(250, 165)、(230, 100),填满颜色为紫色。Dim g As Graphics = Me.CreateGraphicsDim pa() As Point = New Point(50, 5), New Point(95, 30), New Point(80, 95),_New Point(20, 95), New Point(5, 30)g.FillPolygon(Brushes.BlueViolet, pa)实例11_04_01以填满方式绘制正方形、圆形、多边形与扇形为例实做。结果图11-14 输出结果程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics g.DrawString(填满指令测试, New Font(标楷体, 24), Brushes.Red, 120, 20) g.FillRectangle(Brushes.Blue, 20, 70, 80, 80) g.FillEllipse(Brushes.Yellow, 120, 70, 80, 80) Dim pa() As Point = New Point(270, 70), New Point(310, 100), New Point(290, 150),_New Point(250, 150), New Point(230, 100) g.FillPolygon(Brushes.BlueViolet, pa) g.FillPie(Brushes.Red, 320, 70, 80, 80, 0, -120) g.Dispose()End Sub实例11_04_05绘制一太极图。结果图11-14 太极图输出结果学习目的1.了解画圆与画实心圆。2.了解画圆与画实心圆的坐标位置。思考逻辑将太极图分解为六个步骤如下:步骤1步骤2步骤3步骤4步骤5步骤6图11-15 太极图分解步骤程序内容Private Sub Timer1_Tick(ByVal .) Handles Timer1.Tick Dim g As Graphics = PictureBox1.CreateGraphics Dim p1 As New System.Drawing.Pen(Color.White, 2) Dim p2 As New System.Drawing.Pen(Color.Black, 2) g.FillEllipse(Brushes.White, 10, 10, 100, 100) 步骤1填满白色圆 g.DrawEllipse(p2, 10, 10, 100, 100) 步骤1画黑色圆框 g.FillPie(Brushes.Black, 10, 10, 100, 100, 90, 180) 步骤2填满黑色半圆 g.DrawPie(p2, 10, 10, 100, 100, 90, 180) 步骤2画黑色半圆框 g.FillPie(Brushes.Black, 35, 10, 50, 50, 90, -180) 步骤3填满黑色半圆 g.DrawPie(p2, 35, 10, 50, 50, 90, -180) 步骤3画黑色半圆框 g.FillPie(Brushes.White, 35, 60, 50, 50, 90, 180) 步骤4填满白色半圆 g.DrawPie(p1, 35, 60, 50, 50, 90, 180) 步骤4画白色半圆框 g.FillEllipse(Brushes.White, 55, 30, 10, 10) 步骤5填满白色圆 g.DrawEllipse(p1, 55, 30, 10, 10) 步骤5画白色圆框 g.FillEllipse(Brushes.Black, 55, 75, 10, 10) 步骤6填满黑色圆 g.DrawEllipse(p2, 55, 75, 10, 10) 步骤6画黑色圆框End SubPrivate Sub Button2_Click(ByVal.) Handles Button2.Click EndEnd Sub11-5 特效区块填满11-5-1 材质填满材质填满 (TextureBrush ) 以图片填满在绘图对象上绘制的封闭图形。语法Dim 图片影像变量 As Image = Image.FromFile(图片影像路径)Dim 影像填满变量 As New TextureBrush(图片影像变量)目的设定以图片填满在绘图对象上绘制的封闭图形。实例11_05_01如在图片方块 (20, 20) 处画一大小为 (120, 120) 的圆形,以美国国旗填满。程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = PictureBox1.CreateGraphics Dim img As Image = Image.FromFile(d:vbnet2005iconsflagsctrusa.ico) Dim br As New TextureBrush(img) g.FillEllipse(br, 20, 20, 120, 120) End Sub结果图11-16 输出结果11-5-2 条纹填满条纹填满 (HatchBrush ) 以VB内建的条纹图片填满在绘图对象上绘制的封闭图形。语法Dim 条纹填满变数 As New Drawing2D.HatchBrush (Drawing.Drawing2D. HatchStyle.条纹名称, Color.前景颜色, Color.背景颜色)目的设定在绘图对象上绘一实心矩形或正方形。实例11_05_02如在图片方块 (20,20) 处画一大小为 (120,120) 的圆形,以条纹填满如图11-17所示。图11-17 条纹填满输出结果程序内容Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = PictureBox1.CreateGraphics Dim br As New Drawing2D.HatchBrush(Drawing.Drawing2D.HatchStyle.DiagonalBrick,_ Color.Blue, Color.White) g.FillEllipse(br, 20, 20, 100, 100)End SubPrivate Sub Button2_Click(ByVal) Handles Button2.ClickEndEnd Sub11-5-3 渐层填满渐层填满 (LinearGradientBrush) 是由两种颜色所组成的,可以填满在绘图对象上绘制的封闭图形。语法Dim 渐层填满变数 As New Drawing2D.LinearGradientBrush(New Point(起点坐标),New Point (终点坐标), Color.起点颜色, Color. 终点颜色)目的在绘制的封闭图形内填满两种颜色渐层的效果。实例11_05_03如在图片方块坐标 (20,20) 处,画一大小为 (120,120) 的圆形,以蓝白渐层方式填满,如图11-18所示。结果图11-18 蓝白渐层方式填满思考逻辑因在图片方块坐标 (20,20) 处,画一大小为 (120,120) 的圆形,以蓝白渐层,因此渐层的起点坐标应为 (0,20),而终点坐标应为 (0,20+120)。程序内容 Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = PictureBox1.CreateGraphics Dim br As New Drawing2D.LinearGradientBrush(New Point(0, 20),_ New Point(0, 140), Color.Blue, Color.White) g.FillEllipse(br, 20, 20, 120, 120) End Sub Private Sub Button2_Click(ByVal) Handles Button2.Click EndEnd Sub 11-6 图 片11-6-1 输出图片图片的输出以使用图片方块 (PictureBox) 最方便,而DrawImage是附属于Graphics对象的方法,虽然比较麻烦但功能却比较多。语法Dim 影像对象变量 As Image = Image.FromFile(图文件完整路径)绘图对象.DrawImage(图片来源,x1,y1,x2,y2)说明1.x1,y1是图片的左上角坐标位置。2.x2,y2是图片宽度与高度。实例11-06-01将影像对象变量img建立含d:vbnet2005chp11小沙弥.jpg的图文件,并将其显示于窗体 (20,20) 坐标位置上。程序内容 Private Sub Button1_Click(ByVal) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim img As Image = Image.FromFile(d:vbnet2005chp11小沙弥.jpg) g.DrawImage(img, 20, 20) End Sub 结果 图11-19 输出结果补充窗体大小与图片 (img) 大小,其叙述如下:1.窗体宽度Me.ClientSize.Width2.窗体高度Me.ClientSize.Height3.图片宽度img.ClientSize.Width4.图片高度img.Height11-6-2 输出图片放大缩小图片的放大与缩小可在绘图语法绘图对象.DrawImage ( 图片来源,x1,y1,x2,y2)中的x2,y2来设定,另外可使用矩形 (Rectangle) 来设定写法如下:例Dim g As Graphics = Me.CreateGraphicsDim img As Image = Image.FromFile(d:vbnet17.jpg)g.DrawImage(img, 10, 10, 300, 300)将g.DrawImage(img, 10, 10, 300, 300)改写如下:Dim rect As Rectanglerect = New Rectangle(10, 10, 300, 300)g.DrawImage(img, rect)实例11_06_02设计一垂直滚动条来控制图片的大小。结果注意垂直滚动条指针用来控制图片的大小。图11-23 输出结果使用对象的类别与属性对象类别对象名称Text ( 标题文字 )其它属性FormForm1利用垂直滚动条图片放大缩小VScrollBarVScrollBar1Maximum:80Miniimum:200程序内容Private Sub VScrollBar1_Scroll(ByVal.) Handles VScrollBar1.Scroll Dim x As Integer x = VScrollBar1.Value Dim g As Graphics = Me.CreateGraphics Dim img As Image = Image.FromFile(d:vbnet17.jpg) Dim rect As Rectangle rect = New Rectangle(20, 20, x, x) g.DrawImage(img, rect)End Sub11-6-3 输出图片反转DrawImage其宽度与高度一般都是正数,但也可以为负值,如为负值时将使图片呈水平或垂直的翻转的情形。实例11_06_03设计一程序以窗体 (120,120) 为中心,移动鼠标时图片将随指针作适当的缩放与翻转,同时显示图片的宽度与高度。结果请注意指针的位置以及图片的宽度与高度。图11-24 输出结果程序内容Dim x, y As IntegerDim s As StringPrivate Sub Form1_MouseMove(ByVal.) Handles MyBase.MouseMove Dim g As Graphics = Me.CreateGraphics Dim img As Image = Image.FromFile(d:vbnet17.jpg) g.DrawImage(img, x, y, e.X - x, e.Y - y) s = 图片的宽度: & e.X - x & 高度: & e.Y - y Label1.Text = s g.Dispose()End SubPrivate Sub Form1_Load(ByVal.) Handles MyBase.Load x = 120 y = 120End Sub说明图片的宽度为鼠标指针的水平坐标位置e.X 减120。图片的高度为鼠标指针的垂直坐标位置e.Y 减120。所以图片的宽度与高度为:e.X 120, e.Y -120。11-6-4 输出图片扭曲图片的输出扭曲变形的效果,就是将原方形的图片变为平行四边形。语法绘图对象.DrawImage(Image对象,Point数组)说明Point数组是由平行四变形的三个点所组成,Point数组 (0) 是左上角、Point数组 (1) 是右上角与Point数组 (2) 是左下角。实例11_06_04写一程序将图片扭曲,其三个点分别为 (60, 0) (303, 0) (0, 236) 结果如11-25所示。图11-25 输出结果程序内容Private Sub Button1_Click(ByVal.) Handles Button1.Click Dim g As Graphics = Me.CreateGraphics Dim img As Image = Image.FromFile(d:vbnet17a.jpg) Dim a(2) As Point a(0) = New Point(60, 0) a(1) = New Point(303, 0) a(2) = New
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- “对策问题”(教学设计)-四年级上册数学人教版
- Unit 10 Section B 2a-2e 说课稿 人教版八年级英语上册
- 城乡融合发展规划合同
- 2025-2032年全球新能源汽车充电设施行业市场发展态势分析报告
- 宁德石雕石栏杆施工方案
- Z世代消费趋势观察:2025年新消费品牌品牌忠诚度提升策略报告
- 河南省焦作市孟州市2023-2024学年九年级下学期中考适应性训练(三模)物理试题及答案
- 促进林草产品深加工与高附加值发展
- 风能行业2025年技术创新与环境保护责任报告
- 高效清洁煤电综合利用项目建筑工程方案
- 数据结构(Java语言描述)(第2版)课件全套 张静 单元1-8 数据结构与算法 - 哈希表
- 眼科规培汇报总结
- 2026版创新设计高考总复习语文部编版-测评练案答案
- 生活垃圾教学课件
- 2025年 山东中烟工业有限责任公司招聘考试笔试试卷附答案
- DB31/T 796-2014节能改造服务规范
- 高速公路收费系统施工技术指南
- 【核心素养目标】《燕歌行并序》公开课一等奖创新教学设计 统编版高中语文选择性必修中册
- 2025年防城港市公安局交通警察支队港口大队招考高频重点提升(共500题)附带答案详解
- 小学五年级语文阅读理解考场答题技巧方法公式步骤复习课件
- 浙江省绍兴市越城区绍兴市第一初级中学2024-2025学年九年级上学期10月月考科学试题
评论
0/150
提交评论