C#程序设计实用教程第09章
36页1、第9章 GDI+,9.1 GDI+概述 GDI+是GDI(Graphics Device Interface,图形设备接口)的增强版本,它为Windows应用程序开发者提供了一组用于图形图像编程的类、结构和枚举。,9.2 C#的图形绘制结构和类 9.2.1 常用绘图结构 (1)Point与PointF结构 C#中定义的Point与PointF用来表示绘图平面上的一个点,与数学中平面上的点的含义相同,每个点有水平方向的x坐标及垂直方向的y坐标表示,其定义形式如下: (2)Size与SizeF结构 Size与SizeF结构使用Width及Height属性表示屏幕上的一个矩形区域的大小,例如: Size s1=new Size(400,300);/表示宽400,高300的矩形区域; (3)Rectangle与RectangleF结构 Rectangle与RectangleF结构定义一个矩形区域,它有两种实例化方式: Rectangle(Point p,Size s); Rectangle(x,y,width,height);,命名空间,使用C#进行图形编程,是通过使用GDI+ 提供的一组类、
2、结构和枚举进行的。 使用GDI+常用的命名空间: System.Drawing System.Drawing.Drawing2D 提供高级的二维和矢量图形功能,4,GDI+提供的4种服务:,.NET Framework类库支持开发者完全地访问Windows GDI+。GDI+提供的服务大致可分为以下4种: GDI+提供了绘制简单图形和复杂图形的类。 GDI+允许开发者绘制各种字体的文本 GDI+允许开发者绘制位图和其他类型的图像。 GDI+提供图形变换功能,9.2.2 Graphics类,Syetem.Drawing命名空间中的Graphics类是绘图操作的核心,它封装了GDI+绘图界面,有3种基本类型的绘图界面,分别是: Windows和屏幕上的控件 要发送给打印机的页面 内存中的位图和图像,5,Grahpics类中常用的成员: DpiX/DpiY 返回图形设备水平/垂直分辨率 DrawArc DrawEllipse DrawImage DrawLine DrawPie,6,DrawPloygon DrawRectangle DrawString FillPie/FillPloygo
3、n/FillRectangle RotateTransform/ScaleTransform,要使用Graphics类执行绘图操作,首先要获得Graphics实例或创建Graphics实例. 3种方法: 1.通过windows窗体或控件的Paint事件来获的Graphics对象实例. Protected override void OnPaint(PaintEventArgs e) Graphics g=e. Graphics; ,2.使用Form类的CreateGraphics方法. Graphics g=this. CreateGraphics(); 注:该实例只在当前Windows窗体消息的过程有效.既在已经存在的窗体或控件中绘图,可用此种方法. 3.从继承自图像的任何对象创建Graphics对象. Bitmap images=new Bitmap(“1.bmp”); Graphics g= Graphics.FromImage(images);,9.2.3 Pen类。 在.NET框架中绘制图形要用到画笔,画笔用Pen类表示,在命名空间Syetem.Drawing中定义,用于绘制
4、各种直线和曲线,在GDI+中,Pen类封装了画笔的功能。画笔具有颜色和线宽等基本属性。 Pen redPen = new Pen(Color.Red, 1); Pen bluePen = new Pen(Color.Blue, 2); Pen greenPen = new Pen(Color.Green, 3); Pen blackPen = new Pen(Color.Black, 4); 上述代码中定义了四个画笔实例,其中第一个参数为画笔颜色,第二个参数表示画笔的线宽。所以定义的是红、蓝绿、黑四种颜色,线宽为1、2、3、4的四种画笔。,9.2.4 Brush类及Brush的派生类 在.NET框架中绘制图形要用到画刷,画刷用Brush类表示,画刷是一种用来填充区域的工具。在GDI+中,Brush是抽象基类,封装了画刷的基本功能,不能直接用它来创建画刷对象实例,而其功能在其派生类中实现。 Brush类有以下几种派生类,对应定义了几种画刷: SolidBrush(单色画刷)类 TextureBrush(纹理画刷)类 HatchBrush(阴影画刷)类 LinearGradientBrus
《C#程序设计实用教程第09章》由会员梦**分享,可在线阅读,更多相关《C#程序设计实用教程第09章》请在金锄头文库上搜索。
数控加工工艺与编程——教学大纲.doc
Linux 应用基础教程--CH04_包管理与系统更新
Java语言第12章 图形用户界面设计
Java语言第3章 数据类型
C#程序设计实用教程第08章
《项目论证与评估》第十一章课件
哈里德课件 (23)
哈里德课件 (21)
高等数学6.2 定积分的物理应用
大学物理学第11章--电磁振荡 电磁波
大学物理学第7章--恒定电流的稳恒磁场
大学物理学第1章--质点运动学
Java语言第7章 接口和抽象
《项目论证与评估》第九章课件
《项目论证与评估》第一章课将
哈里德课件 (15)
哈里德课件 (1)
高等数学5.4 广义积分
Linux 应用基础教程--CH00_课前概说
C#程序设计实用教程第09章
2024-04-11 25页
2024-04-11 37页
2024-04-11 28页
2024-04-11 31页
2024-04-11 36页
2024-04-11 29页
2024-04-11 22页
2024-04-11 27页
2024-04-11 34页
2024-04-11 32页