第9章 GDI+与图形编程

合集下载

Windows程序设计基础教学日历

Windows程序设计基础教学日历
2
图书馆查阅参考书
参考书①第4、6章
第10周
理论
2
流程控制语句(选择结构、循环结构)
2
图书馆查阅参考书
参考书①第3章
第11周
理论
2
面向对象程序设计基础(类、对象相关概念)
、方法定义及调用
2
图书馆查阅参考书
参考书①第7、5章
第11周
理论
2
常用组件使用:文本类、按钮类、列表类、Ttimer时钟类
2
课后习题
平时学习检查
参考书名称和章节
时数
内容
检查要求方式
所需时间
第9周
理论
2
程序设计语言和方法概述、Visual Studio .netIDE环境、.NET WinForm开发方法和步骤;
参考书①第1章
第9周
理论
2
C#数据类型、运算符与表达式、变量与常量
2
图书馆查阅参考书
参考书①第2章
第10周
理论
2
复杂数据类型(结构、枚举、数组)
P37:1、2、3
抽查
2Байду номын сангаас
参考书①第9章
第12周
理论
2
对话框、菜单、工具栏和状态栏组件、MDI应用程序设计
2
课后习题
P93:4
抽查
2
参考书①第10章
第12周
理论
2
文件操作
2
课后习题
P140:3、4
抽查
2
参考书①第13章
第13周
理论
2
数据库基础,概述、对象
参考书①第14章
第13周
参考资料:①钱哨编著,《C# WinForm实践开发教程》,中国水利水电出版社

GDI

GDI

一、GDIGDI是位于应用程序与不同硬件之间的中间层,这种结构让程序员从直接处理不同硬件的工作中解放出来,把硬件间的差异交给了GDI处理。

GDI通过将应用程序与不同输出设备特性相隔离,使Windows 应用程序能够毫无障碍地在Windows支持的任何图形输出设备上运行。

例如,我们可以在不改变程序的前提下,让能在Epson点式打印机上工作的程序也能在激光打印机上工作。

它把windows系统中的图形输出转换成硬件命令然后发送给硬件设备。

GDI是以文件的形式存储在系统中,系统需要输出图形时把它载入内存,如果转换成硬件命令时遇到非GDI命令,系统还可能载入硬件驱动程序,驱动程序辅助GDI把图形命令转换成硬件命令。

二、设备环境Windows系统是用来给应用程序提供设备独立性的工具,它是windows系统为了处理输出设备而使用的一种内部数据结构,设备环境是windos程序,驱动程序,和输出设备(如打印机,绘图仪)之间的纽带,GDI是一组C++类,它在驱动程序的协助下把数据描绘在硬件上,它位于应用程序与硬件之间,把数据从一方传到另一方。

在Visual Studio .NET中Micro$oft解决了GDI中的许多问题,并让它变得易用,GDI的.net版本叫做GDI+。

三、GDI+GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好。

GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。

例如你如果要设置某个控件的前景和背景色,只需设置BackColor和ForeColor属性。

四、编程模式的变化“GDI uses a stateful model, whereas GDI+ uses a stateless”——GDI是有状态的,GDI+是无无状态的。

1、不再使用设备环境或句柄在使用GDI绘图时,必须要指定一个设备环境(DC),用来将某个窗口或设备与设备环境类的句柄指针关联起来,所有的绘图操作都与该句柄有关。

gdi+ 程序设计 pdf

gdi+ 程序设计 pdf

gdi+程序设计GDI+是图形设备接口的一个版本,用于在Windows操作系统上提供图形绘制功能。

它是.NET Framework的一部分,为开发人员提供了一套丰富的类和方法,用于绘制2D图形、图像和文本。

下面是一个简单的GDI+程序设计示例,该示例在窗体上绘制一个红色的矩形:```csharpusing System;using System.Drawing;using System.Windows.Forms;public class GdiPlusApp:Form{public GdiPlusApp(){this.Paint+=new PaintEventHandler(GdiPlusApp_Paint);}void GdiPlusApp_Paint(object sender, PaintEventArgs e){Graphics g=e.Graphics;Rectangle rect=new Rectangle(10,10, 200,100);SolidBrush brush=new SolidBrush(Color.Red);g.FillRectangle(brush,rect);g.DrawRectangle(Pens.Black,rect);}[STAThread]static void Main(){Application.Run(new GdiPlusApp());}}```在这个示例中,我们创建了一个继承自`Form`的`GdiPlusApp`类。

在`GdiPlusApp`的构造函数中,我们添加了一个`Paint`事件处理器`GdiPlusApp_Paint`。

当窗体需要重新绘制时,就会触发这个事件。

在`GdiPlusApp_Paint`方法中,我们创建了一个`Graphics`对象,然后使用`SolidBrush`和`Pens`类来绘制一个红色的矩形和一个黑色的边框。

最后,我们在`Main`方法中创建了`GdiPlusApp`的实例并启动了应用程序。

GDI+教程(C++中文版)

GDI+教程(C++中文版)

GDI+ SDK参考(翻译版本)序言.............................................................................................................................................- 4 - 目标.....................................................................................................................................- 4 - 适用范围.............................................................................................................................- 4 - 适用读者.............................................................................................................................- 4 - 运行环境.............................................................................................................................- 4 - 文档组织.............................................................................................................................- 4 - 相关主题.............................................................................................................................- 4 - GDI+的安全考虑........................................................................................................................- 6 - 检验构造函数调用成功与否..............................................................................................- 6 - 分配缓冲区.........................................................................................................................- 6 - 错误校验.............................................................................................................................- 7 - 线程同步.............................................................................................................................- 9 - 相关主题...........................................................................................................................- 10 - 关于GDI+.................................................................................................................................- 11 - GDI+ 介绍........................................................................................................................- 11 - GDI+ 概览..............................................................................................................- 11 -GDI+ 的三个组成部分..........................................................................................- 11 -基于类的接口架构....................................................................................................- 12 - GDI+提供了哪些新东西?..............................................................................................- 12 - 新特征.......................................................................................................................- 12 -编程模式的改变........................................................................................................- 15 - 线条、曲线和图形...........................................................................................................- 19 - 矢量图概览...............................................................................................................- 19 -钢笔、线条和矩形....................................................................................................- 20 -椭圆和弧...................................................................................................................- 22 -多边形.......................................................................................................................- 22 -基数样条...................................................................................................................- 23 -贝塞尔样条...............................................................................................................- 24 -路径...........................................................................................................................- 25 -画刷和填充图形........................................................................................................- 27 -开放与闭合曲线........................................................................................................- 29 -区域...........................................................................................................................- 30 -裁剪...........................................................................................................................- 31 -路径平直化...............................................................................................................- 32 -线条和曲线的抗锯齿功能........................................................................................- 32 - 图象、位图和图元文件....................................................................................................- 33 - 位图类型...................................................................................................................- 34 -图元文件...................................................................................................................- 37 -绘制、定位和复制图片............................................................................................- 39 -裁剪和缩放图象........................................................................................................- 40 - 坐标系统和转换...............................................................................................................- 42 - 坐标系统类型............................................................................................................- 42 -以矩阵来表示转换....................................................................................................- 44 -全局和局部转换........................................................................................................- 48 - 图形容器...........................................................................................................................- 51 - 使用GDI+.................................................................................................................................- 56 - 使用入门...........................................................................................................................- 56 - 绘制线条...................................................................................................................- 56 -绘制字符串...............................................................................................................- 58 - 使用钢笔绘制线条和形状................................................................................................- 59 - 使用钢笔绘制线条和矩形........................................................................................- 59 -设置钢笔的宽度和对齐方式....................................................................................- 60 -绘制具有线帽的线条................................................................................................- 61 -联接线条...................................................................................................................- 62 -绘制自定义虚线........................................................................................................- 62 -绘制用纹理填充的线条............................................................................................- 63 - 使用画笔填充形状...........................................................................................................- 63 - 用纯色填充形状........................................................................................................- 64 -用阴影图案填充形状................................................................................................- 64 -用图像纹理填充形状................................................................................................- 64 -在形状中平铺图像....................................................................................................- 65 -用渐变色填充形状....................................................................................................- 68 - 使用图像、位图和图元文件............................................................................................- 68 - 加载和显示位图........................................................................................................- 68 -加载和显示图元文件................................................................................................- 69 -记录图元文件............................................................................................................- 69 -剪裁和缩放图像........................................................................................................- 71 -旋转、反射和扭曲图像............................................................................................- 72 -缩放时使用插值模式控制图像质量........................................................................- 73 -创建缩略图像............................................................................................................- 75 -采用高速缓存位图来提高性能................................................................................- 76 -通过避免自动缩放改善性能....................................................................................- 76 -读取图像元数据........................................................................................................- 77 - 使用图像编码器和解码器................................................................................................- 83 - 列出已安装的编码器................................................................................................- 83 -列出已安装的解码器................................................................................................- 84 -获取解码器的类标识符............................................................................................- 86 -获取编码器的参数列表............................................................................................- 88 -将BMP图像转换为PNG图像.............................................................................- 100 -设定JPEG的压缩等级..........................................................................................- 101 -对JPEG图像进行无损变换..................................................................................- 102 -创建和保存多帧图像..............................................................................................- 105 -从多帧图像中复制单帧..........................................................................................- 107 - Alpha 混合线条和填充..................................................................................................- 109 - 绘制不透明和半透明的线条..................................................................................- 109 -用不透明和半透明的画笔绘制..............................................................................- 110 -使用复合模式控制Alpha 混合...........................................................................- 111 -使用颜色矩阵设置图像中的Alpha 值..............................................................- 112 -设置单个象素的alpha值.....................................................................................- 114 - 使用字体和文本.............................................................................................................- 115 - 构造字体系列和字体..............................................................................................- 115 -绘制文本.................................................................................................................- 116 -格式化文本.............................................................................................................- 117 -枚举已安装的字体..................................................................................................- 120 -创建专用的字体集合..............................................................................................- 122 -获取字体规格..........................................................................................................- 126 -对文本使用消除锯齿效果......................................................................................- 130 - 构造并绘制曲线.............................................................................................................- 131 - 绘制基数样条曲线..................................................................................................- 131 -绘制贝塞尔样条......................................................................................................- 133 - 用渐变画刷填充形状.....................................................................................................- 134 - 创建线性渐变..........................................................................................................- 134 -创建路径渐变..........................................................................................................- 137 -将Gamma 校正应用于渐变..............................................................................- 144 - 构造并绘制路径.............................................................................................................- 145 - 使用线条、曲线和形状创建图形..........................................................................- 145 -填充开放式图形......................................................................................................- 147 - 使用图形容器.................................................................................................................- 147 - 管理Graphics 对象的状态................................................................................- 148 -使用嵌套的Graphics 容器................................................................................- 151 - 变换.................................................................................................................................- 154 - 使用世界变换..........................................................................................................- 154 -为什么变换顺序非常重要......................................................................................- 155 - 使用区域.........................................................................................................................- 156 - 对区域使用点击检测..............................................................................................- 156 -对区域使用剪辑......................................................................................................- 157 - 对图像重新着色.............................................................................................................- 158 - 使用颜色矩阵对单色进行变换..............................................................................- 158 -转换图像颜色..........................................................................................................- 160 -缩放颜色.................................................................................................................- 161 -旋转颜色.................................................................................................................- 164 -剪取颜色.................................................................................................................- 166 -使用颜色重映射表..................................................................................................- 168 - 打印.................................................................................................................................- 169 - 将GDI+输出至打印机.........................................................................................- 169 -显示一个打印对话框..............................................................................................- 172 -通过提供打印机句柄优化打印..............................................................................- 173 - 附录:GDI+ 参考..................................................................................................................- 176 -序言目标Microsoft Windows GDI+是为C/C++开发者提供的一个基于类的应用程序编程接口(API)。

常用的GDI绘图函数(免费)

常用的GDI绘图函数(免费)
CreateDIBPatternBrushPt 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
CreateHatchBrush 创建带有阴影图案的一个刷子(阴影图案见注解)
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
GetObjectType 判断由指定句柄引用的GDI对象的类型
SelectObject 每个设备场景都可能有选入其中的图形对象。其中包括位图、刷子、字体、画笔以及区域等等。一次选入设备场景的只能有一个对象。选定的对象会在设备场景的绘图操作中使用。例如,当前选定的画笔决定了在设备场景中描绘的线段颜色及样式
ExtCreatePen 创建一个扩展画笔(装饰或几何)
GetStockObject 取得一个固有对象(Stock)。这是可由任何应用程序使用的windows标准对象之一
例1∶创建一个红色实线画笔,画笔宽度为3个像素点
背景模式∶阴影刷子、虚线画笔和文本都有一个背景。对于阴影刷,它是指阴影线之间的区域,对于虚线画笔,则指点和虚线之间的区域。而对于文本,它是指每个字符单元的背景。背景模式决定了WINDOWS如何处理这些背景区。它可以是不透明的,也可以是透明的。若是不透明的,则背景区设置为背景色;否则如果是透明的,则背景区域保持原状。
如果是的话,随便整好了。
OK,以下展示了使用GDI对象的API函数。
函 数 说 明
DeleteObject 用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。对象使用的所有系统资源都会被释放
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置

文字和图形处理技术

文字和图形处理技术
HDC hDC; hDC = GetDC()->m_hDC; char data[] = "明日科技有限公司!"; TextOut(hDC,60,30,data,strlen(data)); //代码省略 } 在向设备上下文中输出文本时,文本将显示在对话框中,如图9-1所示。
课件制作人:宋坤
9.2 设备上下文介绍
GDI对象和设备上下文

各种样式文本的输出


各种图形的绘制


对图形进行颜色填充


图像的绘制
图像在窗口中的操作
课件制作人:宋坤
本章目录
9.1 GDI概述 √ 9.2 设备上下文介绍 √ 9.3 GDI对象 √ 9.4 文本输出 √ 9.5 绘制图形 √ 9.6 绘制图像 √ 9.7 课后习题 √
9.3 GDI对象
void CDrawDlg1Dlg::OnPaint() {
HDC hDC; hDC = GetDC()->m_hDC; CPen pen; //创建一个红色的宽度为2的画笔 pen.CreatePen(PS_SOLID,2,RGB(255,0,0)); //选中画笔 SelectObject(hDC,pen); CRect rc(80,30,200,80); //利用画笔绘制矩形 Rectangle(hDC,80,30,200,80); //代码省略 } 运行后效果如图9-2所示。
参数值描述 用于绘制实线 用于绘制虚线 用于绘制点线 用于绘制虚线和点线交替的直线 用于绘制一虚线和两点交替的直线 不可见画线 实线画笔,用来压缩图表使之适合有界矩形 创建一支几何画笔 创建一支装饰画笔 创建一支交替设置像素的画笔 创建一支使用用户提供的风格数组的画笔 尾帽是圆的 尾帽是方的 尾帽是平面的 连接是斜截式的

GDI+学习资料

GDI+学习资料

第5章 GDI+GDI+(Graphics Device Interface Plus 图形设备接口加)是Windows XP 和Windows Server 2003操作系统的图形子系统,也是.NET 框架的重要组成部分和窗体绘图的主要工具,负责在屏幕和打印机上绘制图形图像和显示信息。

顾名思义,GDI+是Windows 早期版本所提供的图形设备接口GDI 的后续版本。

GDI+是一种应用程序编程接口(API),分别通过一套C++类和一套部署为托管代码的类来展现,这两套类分别被称为GDI+的“C++封装”和“托管类接口”。

GDI+不但在功能上比GDI 要强大很多,而且在代码编写方面也更简单,因此会很快成为Windows 图形图像程序开发的主要工具。

本章将介绍GDI+的特点和新增功能,以及GDI+ API 的具体使用方法,包括二维矢量图形的绘制、图像处理的应用、以及文字的显示等。

由于本章内容较多,有些章节不作为基本要求,用*号表示的章节是可选的。

5.1 概述GDI+与GDI 一样,都具有设备无关性。

而且GDI+是建立在GDI 之上的一种高层接口,供Windows 应用程序和.NET 框架调用。

参见下图:GDI+的体系结构本节首先介绍GDI+的几个主要新增的特性及其功能,然后说明它给Windows 图形图像程序的开发模式带来的变化,最后给出一个代码实例,介绍如何在VC++中使用GDI+进行程序开发。

1.GDI+的功能GDI+主要提供了以下三种功能:1)二维矢量图形与MFC中代表GDI的CDC和CGDIObject的诸派生类(CPen、CBrush、CFont等)类似,GDI+的Graphics等类也提供绘制各种二维矢量图形(如直线、折线、矩形、椭圆、多边形等)的功能。

而且GDI+还增加了许多新的特性和功能,如无当前状态的绘图模式、含透明成分(α混色)的颜色类Color、图案笔、颜色可渐变的刷、贝塞尔和样条曲线、持久的路径、可伸缩的区域、功能强大的矩阵和变换等等。

第九章多文档界面(MDI)

第九章多文档界面(MDI)
创建画笔有两种方法: 一是使用CPen::CreatePen(int nPenStyle,int nWidth,DWORD crColor) 进行初始化。 第一个参数是笔的风格。 nPenStyle可选值有: PS_SOLID 实线 PS_DOT 虚线
PS_INSIDEFRAME 在一个封闭形状的框架内画线,若设定的颜 色不能在调色板种找到且线宽大于1,Windows会使用一种混色。 PS_NULL 空的画笔,什么也不画
9.1多文档界面窗口
MDI 框架窗口为层叠、平铺、排列子窗口和新建子窗口等一些 标准窗口操作提供了缺省的菜单响应。 在响应新建子窗口命令时,框架调用 CDocTemplate::CreateNewFrame() 为当前活动文档创建一个子窗口。 CreateNewFrame() 不仅创建子窗口,还创建与文档相对应的视 图。 下面,我们结合一个绘图程序例子,介绍多文档界面技术。 在此之前,我们首先要介绍一下如何在Windows 中绘图以及 Windows 的图形设备接口(GDI )。
CClientDC(客户区设备上下文)用于客户区的输出,它在构造 函数中封装了GetDC(),在析构函数中封装了ReleaseDC()函数。 一般在响应非窗口重画消息(如键盘输入时绘制文本、鼠标绘图) 绘图)时要用到它。
用法是:
CClientDC dc(this); //this一般指向本窗口或当前活动视图
9.2 图形设备接口(GDI)
光栅输出 光栅图形的输出是指光栅图形函数对以位图形式存储的数据进行 操作,它包括各种位图和图标的输出。 在屏幕上表现为对若干行和列的像素的操作,在打印机上则是若 干行和列的点阵的输出。 光栅图形输出的优点是速度很快,它是直接从内存到显存的拷贝 操作。 缺点是需要额外的内存空间。 Windows在绘制界面时使用了大量的光栅输出。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能:绘制一个由由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆。 说明:参数pen为画笔,参数x和y分别定义椭圆外接边框的左上角的横坐标和纵 坐标,参数width定义椭圆的边框的宽度,参数height定义椭圆的边框的高度。当 高度和宽度相同时,画出的是圆。
格式2: public void DrawEllipse(Pen pen,Rectangle rect);
9.3 Graphics类
(3)使用Iamge的派生类创建Graphics对象 使用Image的任何派生类均可以生成相应的Graphics对象。这种 方法一般适用于在C#中对图像进行处理的场合,如: Bitmap b = new Bitmap("mybmp.bmp"); Graphics g = Graphics.FromImage(b);
9.2 绘图工具类
9.2.1 Pen类
(3)使用Iamge的派生类创建Graphics对象 使用Image的任何派生类均可以生成相应的Graphics对象。这种 方法一般适用于在C#中对图像进行处理的场合,如: Bitmap b = new Bitmap("mybmp.bmp"); Graphics g = Graphics.FromImage(b);
9.1 GDI+与图形编程
9.1.1 GDI+绘图命名空间
2.GDI+绘图命名空间
所使用的GDI+函数都保存在System.Drawing.dll 程序集中。在C#的图形编程中,最常使用的命 名空间是System.Drawing。
9.1 GDI+与图形编程
9.1.1 GDI+绘图命名空间
2.GDI+绘图命名空间
功能:在由(x1,y1)和(x2,y2)指定的点之间画一条直线。 说明:参数pen为画笔,参数x1和y1为所画直线起始点的横坐标和纵坐标,参数 x2和y2为所画直线终点的横坐标和纵坐标。
格式2: public void DrawLine(Pen pen,Point pt1,Point pt2);
功能:在pt1和pt2指定的两个点之间画一条直线。 说明:参数pen为画笔,参数pt1是Point结构的数据,表示所画直线的起始点,参 数pt2也是Point结构的数据,表示所画直线的终点。
System.Drawing命名空间中的常用类
类 Bitmap Brush Font Graphics Pen Region 说明 封装GDI+位图,此位图由图形图像及其属性的像素数据组成。 Bitmap是用于处理由像素数据定义的图像的对象 定义用于填充图形形状(如矩形、椭圆)的内部对象 定义特定的文本格式,包括字体、字号等 封装一个GDI+绘图图面,无法继承此类 定义用于绘制直线和曲线的对象,无法继承此类 指示由矩形和路径构成的图形形状的内部,无法继承此类
9.2 绘图工具类
9.2.1 Pen类
1. Pen对象的创建
Pen类的构造函数有4个,使用方法如下:
(1)创建某一颜色的Pen对象 Public Pen(Color) (2)创建某一刷子样式的Pen对象 Public Pen(Brush) (3)创建某一刷子样式并具有相应宽度的的Pen对象 Public Pen(Brush,float) (4)创建某一颜色和相应宽度的Pen对象 Public Pen(Color,float)
第9章 GDI+与图形编程
9.1 GDI+绘图基本知识 9.2 绘图工具类 9.3 绘制相关图形
9.1 GDI+与图形编程
9.1.1 GDI+绘图命名空间
1.GDI+
GDI+是GDI的改进产品,是.NET Framework的 绘图技术,可将应用程序和绘图硬件分离,让我 们能够编写与设备无关的应用程序。我们可以调 用GDI+类所提供的方法,然后这些方法会适当 地调用特定的设备驱动程序,完成绘图。
9.1 GDI+与图形编程
9.1.3 Graphics类
(2) 使用窗体或控件的CreateGraphics方法 窗体或控件都有一个CreateGraphics方法,通过该方法可以在程 序中生成此窗体或控件的Graphics对象,这种方法一般用于对象已经 存在的情况下。 Graphics g; g = this.CreateGraphics();
9.2 绘图工具类
9.2.2 常用图形的绘制方法
3.画椭圆
使用Graphics对象的DrawEllipse方法可以绘制椭圆或圆,绘 制椭圆的常用格式如下。 格式1: public void DrawEllipse(Pen pen,int x1,int y1,int width,int height);
9.3 绘制相关图形
9.3.2 绘制统计图
【例9-4】按百分比绘制饼图。
本实例的目标是掌握绘制统计图形的基本要领。饼图可以直 接使用类库中的方法填充图形,不同之处在于统计类图形需和数 据关联,如何获取数据并按不同数据绘制不同比例的饼图是实现 的关键。
9.2 绘图工具类
【例9-2】在窗体上为各种形状填充不同的颜色。 本例的目标是使用图形与画刷类为窗体上绘制的基 本形状填充颜色。
9.3 绘制相关图形
9.3.1 绘制曲线
【例9-3】绘制正弦曲线y=sin(x)。
本例的目标是掌握绘制曲线的基本要领。可以在任意窗体或 控件上找到各相关点,计算绘制曲线,以正弦曲线为例,首先应 找到坐标原点,然后找到每一个曲线上对应点的坐标,在两点之 间画一条直线,如此反复直到曲线终点。
功能:绘制一个由左上角坐标、宽度和高度指定的矩形。 说明:参数pen为画笔,参数x和y为所画矩形左上角的横坐标和纵坐标,参数 width和height为所画矩形的宽度和高度。
格式2: public void DrawRectangle(Pen pen,Rectangle rect);
功能:绘制一个矩形。 说明:参数pen为画笔,参数rect为要绘制矩形的Rectangle结构。
Size
存储一个有序整数对,通常为矩形的宽度和高度
9.1 GDI+与图形编程
9.1.2 坐标系统
在绘图过程中,经常会遇到坐标系的问题。窗体、 控件都包含坐标,通常的情况是二维图形绘制,即具 有X和Y坐标。默认情况下,X坐标代表从绘图区左边 边缘(Left)到某一点的距离,Y坐标代表从绘图区 上边边缘(Top)到某一点的距离。 (1)坐标原点 (2)正方向 (3) 单位
9.1 GDI+与图形编程
9.1.1 GDI+绘图命名空间
2.GDI+绘图命名空间
System.Drawing命名空间中的常用结构
结构 Color Point Rectangle 说明 表示RGB颜色 表示在二维平面中定义的点、整数X和Y坐标的有序对 存储一组整数,共4个,表示一个矩形的位置和大小
9.2 绘图工具类
9.2.2 常用图形的绘制方法
2.画矩形
画矩形可以使用Graphics的DrawRectangle方法,该方法主要有 如下两种格式。 格式1 :
public void DrawRectangle(Pen pen,int x1,int y1,int width,int height);
9.1 GDI+与图形编程
9.1.3 Graphics类
Graphics类不能直接实例化。创建图形对象 的方法有3种:
(1) 利用窗体或控件的Paint事件的参数PaintEventArgs 当响应窗体或控件的Paint事件时,传回的事件参数 PaintEventArgs中包含着窗体或控件的Graphics对象,可以在其上进 行绘图工作。 private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; //声明一个Graphics对象g }
Brush类的派生类 名称 ImageBrush LinearGradientBrush RadialGradientBrush SolidColorBrush VideoBrush 说明 图像绘制区域 线性渐变绘制区域 径向渐变绘制区域,焦点定义渐变的开始, 椭圆定义渐变的终点 单色绘制区域 视频内容绘制区域
9.2 绘图工具类
【例9-1】使用图形与画笔类直接在窗体上绘制各种基本形状。
9.2 绘图工具类
9.2.2 常用图形的绘制方法
1.画直线
画直线可以使用Graphics的DrawLine方法,该方法主要有如下 两种格式。 格式1: public void DrawLine(Pen pen,int x1,int y1,int x2,int y2);
功能:绘制边界由rect指定的椭圆。 说明:参数pen为画笔,参数rect为Rectangle结构型数据,它定义了椭圆的外接矩 形。
9.2 绘图工具类
9.2.3 Brush 类
Brush类(画刷),用于填充图形。该类是一个抽象基类, 不能直接实例化,可以通过派生类设置笔刷的样式、颜色及线 条的粗细。这里所谓的区域即在什么范围内使用笔刷。
相关文档
最新文档