图形程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章 图形程序设计
7.1 GDI+概述
GDI+ 是使程序员能够编写与设备无关的 应用程序的 Graphics Device Interface (图形设备接口) 。 通过使用 GDI+,可以创建图形、绘制文 本以及将图形图像作为对象操作。
Graphics 类包含许多绘制操作方法和图像 操作方法。下面列出了一些常用的方法: 1.绘制直线的方法:DrawArc、 DrawBezier、DrawEllipse、DrawImage、 DrawLine、DrawPolygon、DrawRectangle 和 DrawString。 2.填充形状的方法:FillClosedCurve、 FillEllipse、FillPath、FillPolygon 和 FillRectangle。 3.清除绘图图面的方法:Clear。 4.从图像创建新的 Graphics 对象的方法: FromImage。
知识点3 Graphics 类
封装一个 GDI+ 绘图图面。 1.Graphics.DrawLine 方法:绘制一条连 接由坐标对指定的两个点的线条。 2.Graphics.DrawRectangle 方法: 绘制 由坐标对、宽度和高度指定的矩形。 3.Graphics.DrawEllipse 方法:绘制一个 由边框(该边框由一对坐标、高度和宽度指 定)定义的椭圆。
Hale Waihona Puke Baidu
可使用 Graphics 类的 PageUnit 属性指定除 像素以外的其他度量单位。下面的示例从 (0, 0) 至 (2, 1) 绘制线条,其中点 (2, 1) 位于点 (0, 0) 的右边 2 英寸和下边 1 英寸处: myGraphics.PageUnit = GraphicsUnit.Inch myGraphics.DrawLine(myPen, 0, 0, 2, 1)
4.Graphics.DrawString 方法:在指定位置并 且用指定的 Brush 和 Font 对象绘制指定的文 本字符串。 5. Graphics.FillRectangle 方法: 填充由一对坐 标、一个宽度和一个高度指定的矩形的内部。 6. Graphics.FillEllipse 方法: 填充边框所定义 的椭圆的内部,该边框由一对坐标、一个宽度 和一个高度指定。 7.Graphics.DrawImage 方法:在指定位置 并且按原始大小绘制指定的 Image 8. Graphics.TranslateTransform 方法: 通过 平移来更改坐标系统的原点。
创建图形对象:
可以用多种方法创建图形对象。 1.在窗体或控件的 Paint 事件中接收对图形对象的 引用,作为 PaintEventArgs 的一部分。在为控件创 建绘制代码时,通常会使用此方法来获取对图形对 象的引用。 2.调用某控件或窗体的 CreateGraphics 方法以获 取对 Graphics 对象的引用,该对象表示该控件或 窗体的绘图图面。如果想在已存在的窗体或控件上 绘图,请使用此方法。 3.由从 Image 继承的任何对象创建 Graphics 对 象。此方法在需要更改已存在的图像时十分有用。
下面的示例设置了 Graphics 对象的世界变换, 然后使用该 Graphics 对象绘制前图中显示的 线条: 世界变换是在 x 方向平移 100 个单位、在 y 方向平移 50 个单位。 myGraphics.TranslateTransform(100, 50) myGraphics.DrawLine(myPen, 0, 0, 160, 80)
知识点4 Pen 类
定义用于绘制直线和曲线的对象。
知识点5 Brush 类
定义用于填充图形形状(如矩形、椭圆、 饼形、多边形和封闭路径)的内部的对 象。这是一个抽象基类,不能进行实例 化。若要创建一个画笔对象,请使用从 Brush 派生出的类,如 SolidBrush、 TextureBrush 和 LinearGradientBrush。
举例:
Dim g as Graphics ' 把图形对象应用到窗体 g = Me.CreateGraphics 或: 下面的示例演示如何使用 Bitmap 对象: Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp") Dim g as Graphics = Graphics.FromImage(myBitmap)
Graphics 对象在创建后,可用于绘制线条和形 状、呈现文本或显示与操作图像。与 Graphics 对象一起使用的主要对象有: Pen 类 ---- 用于绘制线条、勾勒形状轮廓或 呈现其他几何表示形式。 Brush 类 ---- 用于填充图形区域,如实心形 状、图像或文本。 Font 类 ---- 提供有关在呈现文本时要使用什 么形状的说明。 Color 结构 ---- 表示要显示的不同颜色。
知识点2 创建图形对象
需要先创建 Graphics 对象,然后才可以使用 GDI+ 绘制线条和形状、呈现文本或显示与 操作图像。Graphics 对象表示 GDI+ 绘图表 面,是用于创建图形图像的对象。 处理图形包括两个步骤: 1.创建 Graphics 对象。 2.使用 Graphics 对象绘制线条和形状、呈 现文本或显示与操作图像。
7.2 GDI+基础
GDI+ 使用三个坐标空间:世界坐标系、页面坐标系和设备 坐标系。 世界坐标系是用于建立特殊图形世界模型的坐标系,也是 在 .NET Framework 中传递给方法的坐标系。 页面坐标系是指绘图图面(如窗体或控件)使用的坐标系。 设备坐标系是在其上进行绘制的物理设备(如屏幕或纸张) 所使用的坐标系。 在 GDI+ 可以在屏幕上绘制线条之前,坐标先要经过一系列 变换。一种称为“世界变换”的变换可将世界坐标转换为页 面坐标,而另一种称为“页面变换”的变换可将页面坐标转 换为设备坐标。
7.1 GDI+概述
GDI+ 是使程序员能够编写与设备无关的 应用程序的 Graphics Device Interface (图形设备接口) 。 通过使用 GDI+,可以创建图形、绘制文 本以及将图形图像作为对象操作。
Graphics 类包含许多绘制操作方法和图像 操作方法。下面列出了一些常用的方法: 1.绘制直线的方法:DrawArc、 DrawBezier、DrawEllipse、DrawImage、 DrawLine、DrawPolygon、DrawRectangle 和 DrawString。 2.填充形状的方法:FillClosedCurve、 FillEllipse、FillPath、FillPolygon 和 FillRectangle。 3.清除绘图图面的方法:Clear。 4.从图像创建新的 Graphics 对象的方法: FromImage。
知识点3 Graphics 类
封装一个 GDI+ 绘图图面。 1.Graphics.DrawLine 方法:绘制一条连 接由坐标对指定的两个点的线条。 2.Graphics.DrawRectangle 方法: 绘制 由坐标对、宽度和高度指定的矩形。 3.Graphics.DrawEllipse 方法:绘制一个 由边框(该边框由一对坐标、高度和宽度指 定)定义的椭圆。
Hale Waihona Puke Baidu
可使用 Graphics 类的 PageUnit 属性指定除 像素以外的其他度量单位。下面的示例从 (0, 0) 至 (2, 1) 绘制线条,其中点 (2, 1) 位于点 (0, 0) 的右边 2 英寸和下边 1 英寸处: myGraphics.PageUnit = GraphicsUnit.Inch myGraphics.DrawLine(myPen, 0, 0, 2, 1)
4.Graphics.DrawString 方法:在指定位置并 且用指定的 Brush 和 Font 对象绘制指定的文 本字符串。 5. Graphics.FillRectangle 方法: 填充由一对坐 标、一个宽度和一个高度指定的矩形的内部。 6. Graphics.FillEllipse 方法: 填充边框所定义 的椭圆的内部,该边框由一对坐标、一个宽度 和一个高度指定。 7.Graphics.DrawImage 方法:在指定位置 并且按原始大小绘制指定的 Image 8. Graphics.TranslateTransform 方法: 通过 平移来更改坐标系统的原点。
创建图形对象:
可以用多种方法创建图形对象。 1.在窗体或控件的 Paint 事件中接收对图形对象的 引用,作为 PaintEventArgs 的一部分。在为控件创 建绘制代码时,通常会使用此方法来获取对图形对 象的引用。 2.调用某控件或窗体的 CreateGraphics 方法以获 取对 Graphics 对象的引用,该对象表示该控件或 窗体的绘图图面。如果想在已存在的窗体或控件上 绘图,请使用此方法。 3.由从 Image 继承的任何对象创建 Graphics 对 象。此方法在需要更改已存在的图像时十分有用。
下面的示例设置了 Graphics 对象的世界变换, 然后使用该 Graphics 对象绘制前图中显示的 线条: 世界变换是在 x 方向平移 100 个单位、在 y 方向平移 50 个单位。 myGraphics.TranslateTransform(100, 50) myGraphics.DrawLine(myPen, 0, 0, 160, 80)
知识点4 Pen 类
定义用于绘制直线和曲线的对象。
知识点5 Brush 类
定义用于填充图形形状(如矩形、椭圆、 饼形、多边形和封闭路径)的内部的对 象。这是一个抽象基类,不能进行实例 化。若要创建一个画笔对象,请使用从 Brush 派生出的类,如 SolidBrush、 TextureBrush 和 LinearGradientBrush。
举例:
Dim g as Graphics ' 把图形对象应用到窗体 g = Me.CreateGraphics 或: 下面的示例演示如何使用 Bitmap 对象: Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp") Dim g as Graphics = Graphics.FromImage(myBitmap)
Graphics 对象在创建后,可用于绘制线条和形 状、呈现文本或显示与操作图像。与 Graphics 对象一起使用的主要对象有: Pen 类 ---- 用于绘制线条、勾勒形状轮廓或 呈现其他几何表示形式。 Brush 类 ---- 用于填充图形区域,如实心形 状、图像或文本。 Font 类 ---- 提供有关在呈现文本时要使用什 么形状的说明。 Color 结构 ---- 表示要显示的不同颜色。
知识点2 创建图形对象
需要先创建 Graphics 对象,然后才可以使用 GDI+ 绘制线条和形状、呈现文本或显示与 操作图像。Graphics 对象表示 GDI+ 绘图表 面,是用于创建图形图像的对象。 处理图形包括两个步骤: 1.创建 Graphics 对象。 2.使用 Graphics 对象绘制线条和形状、呈 现文本或显示与操作图像。
7.2 GDI+基础
GDI+ 使用三个坐标空间:世界坐标系、页面坐标系和设备 坐标系。 世界坐标系是用于建立特殊图形世界模型的坐标系,也是 在 .NET Framework 中传递给方法的坐标系。 页面坐标系是指绘图图面(如窗体或控件)使用的坐标系。 设备坐标系是在其上进行绘制的物理设备(如屏幕或纸张) 所使用的坐标系。 在 GDI+ 可以在屏幕上绘制线条之前,坐标先要经过一系列 变换。一种称为“世界变换”的变换可将世界坐标转换为页 面坐标,而另一种称为“页面变换”的变换可将页面坐标转 换为设备坐标。