欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第六章 图形编程ppt课件.ppt

    • 资源ID:2133994       资源大小:396KB        全文页数:35页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第六章 图形编程ppt课件.ppt

    第六章 GDI+编程,议程,.NET图形编程概述画笔和画刷图形的绘制文本和字体双缓冲,一、图形编程概述,1.GDI+技术简介GDI:Graphics Device InterfaceGDI+是一种构成Microsoft Windows XP操作系统的子系统的应用程序编程接口(API)。GDI+负责在屏幕和打印机上显示信息。GDI+:GDI的改进,同时也是.NET框架结构的重要组成部分。和GDI一样它提供了对二维图形图像和文字排版处理的支持。通过GDI+能够创建与设备无关的应用程序。,GDI+提供的新特性:-Alpha混合技术-反锯齿处理技术-渐变色和纹理填充-宽线条-基本几何曲线样式-可缩放区域-浮点数坐标-嵌入画笔-高质量过滤和缩放-多种线条样式和端点选项,6.1坐标系统,GDI+在坐标系中绘制直线、矩形和其他形状。我们可以从各种各样的坐标系统中选择,但默认系统的原点是在左上角,并且x轴指向右边,y轴指向下边。默认坐标系统的度量单位是像素。,(0,0),(x,0),(0,y),注:x,y为屏幕的分辨率,6.2 Graphics类,Graphics类是使用GDI+的基础,它代表了所有输出显示的绘图环境,用户可以通过编程操作Graphics 对象,在屏幕上绘制图形、呈现文本或操作图像。创建Graphics 对象可以有多种方法。(1)Paint事件 在为窗体编写 Paint 事件处理程序时,图形对象作为一个 PaintEventArgs 类的实例提供。下面的代码引用 Paint 事件的 PaintEventArgs 中的 Graphics 对象:private void Form1_Paint(object sender,PaintEventArgs pe)/声明图形对象并把它设置为PaintEventArgs事件提供的图形对象 Graphics g=pe.Graphics;/在这插入绘制窗体的代码,(2)CreateGraphics方法 使用控件或窗体的 CreateGraphics()方法来获取对 Graphics 对象的引用,该对象表示这个控件或窗体的绘图表面。例如:Graphics g;/把g设为一个图形对象,来表示控件或窗体的绘图平面g=this.CreateGraphics();/this可替换成其他的控件名,用this的话将form创建为画布(3)Graphics.FromImage方法 从 Image 类派生的任何对象创建图形对象,调用 Graphics.FromImage()方法即可。例如:Bitmap myBitmap=new Bitmap(C:myPic.bmp);Graphics g=Graphics.FromImage(myBitmap);,在 GDI+中,可使用“画笔”和“画刷”对象来呈现图形、文本和图像。画笔是 Pen 类的实例,可用于绘制线条和空心形状。画刷是从抽象类Brush 类派生的任何类的实例,可用于填充形状或绘制文本。Color对象是表示特定颜色类的实例,画笔和画刷可使用构造函数来指定它所呈现的图形的颜色。例如:Pen myPen=new Pen(Color.Red);/创建一个红色的笔.SolidBrush myBrush=new SolidBrush(Color.Blue);/创建一个深蓝的画刷.,Graphics类的常用属性和方法分别如表6-1和表6-2所示。,表6-1 Graphics类的常用属性,表6-2 Graphics类的常用方法,二、绘图,.NET提供了绘制各种图形的功能。它允许用户在窗体及其中的各种对象上绘制直线、矩形、多边形、圆、椭圆、圆弧、曲线、饼图等图形状态。2.1 画笔 画笔(Pen)用于绘制直线和曲线,无法继承此类,它在System.Drawing命名空间中。画笔可用于绘制线条、曲线以及勾勒形状轮廓。下面的代码创建一支基本的黑色画笔:Pen myPen=new Pen(Color.Black);/创建一个默认宽度为1的黑色画笔Pen myPen=new Pen(Color.Black,5);/创建一个宽度为5的黑色画笔 也可以通过已存在的画刷对象创建画笔。下面的代码创建基于已存在画刷(名为 myBrush)的画笔:Pen myPen=new Pen(myBrush);/创建一个画笔,与myBrush有相同的属性,并且默认宽度为1。Pen myPen=new Pen(myBrush,5);/创建一个画笔,与myBrush有相同的属性,并且宽度为5.,在画笔创建后,可以设置画笔的线条形式的各种属性。Width和Color等属性会影响线条的外观,而StartCap和EndCap属性将预设或自定义的形状添加到线条的开始或结尾。DashStyle属性允许在实线、虚线、点划线或自定义点划线之间进行选择,而DashCap属性可以自定义线条中短划线的结尾。,2.2 画刷 画刷是与 Graphics 对象一起使用来创建实心形状和呈现颜色与图案的对象。几种不同类型的画刷如表6-3所示。所以这些类均是从Brush类继承的,该类是抽象类,不能实例化。,表6-3 画刷的类型,例6.1 设计WinForm应用程序分别使用画笔和画刷画出以坐标(30,30)和(130,30)为起点的长为70、高为50的矩形。,2.3 绘制直线 绘制直线时,可以调用Graphics类中的DrawLine方法,该方法为可以重载方法,主要用来绘制一条连接由坐标对指定的两个点的线条,其常用格式有以下两种:1)绘制一条连接两个Point结构的线,如下所示:Graphics g=this.CreateGraphics();g.DrawLine(Pen myPen,Point pt1,Point pt2);其中笔对象myPen确定线条的颜色、宽度和样式。pt1是Point结构,它表示要连接的一个点。Pt2是Point结构,表示要连接的另一个点。2)绘制一条连接由坐标对指定的两个点的线条,如下所示:Graphics g=this.CreateGraphics();g.DrawLine(Pen myPen,int x1,int y1,int x2,int y2);,DrawLine方法中各参数及说明如表6-4所示。,6-4 DrawLine方法中各参数及说明,例6.2 设计WinForm应用程序分别使用以上介绍的方法绘制直线。,2.4 绘制矩形 可以调用Graphics类中的DrawRectangle方法来绘制矩形,该方法为可重载方法,主要用来绘制由坐标对、宽度和高度指定的矩形,其常用格式有以下两种。1)绘制由Rectangle结构指定的矩形,如下所示:Graphics g=this.CreateGraphics();g.DrawRectangle(Pen myPen,Rectangle rect);其中myPen为笔Pen的对象,它确定矩形的颜色、宽度和样式。rect表示要绘制矩形的Rectangle结构。例如,声明一个Rectangle结构,代码如下:Rectangle rect=new Rectangle(30,30,100,80);/以(30,30)为起点长为100,高为80的矩形 2)绘制由坐标对、宽度和高度指定的矩形,如下所示:Graphics g=this.CreateGraphics();g.DrawRectangle(Pen myPen,int x,int y,int width,int height);,2.5 绘制椭圆 绘制椭圆时,可以调用Graphics类中的DrawEllipse方法,该方法为可重载方法,主要用来绘制边界由Rectangle结构指定的椭圆,其常用格式有以下两种。1)绘制边界由Rectangle结构指定的椭圆,如下所示:Graphics g=this.CreateGraphics();g.DrawEllipse(Pen myPen,Rectangle rect);其中myPen为笔Pen的对象,它确定曲线的颜色、宽度和样式。Rect为Rectangle结构,定义椭圆的边界。2)绘制一个由边框(该边框由一对坐标、高度和宽度指定)指定的椭圆,如下所示:Graphics g=this.CreateGraphics();g.DrawEllipse(Pen myPen,int x,int y,int width,int height);,2.6 绘制圆弧 绘制圆弧时,可以调用Graphics类中的DrawArc方法,该方法为可重载方法,主要用来绘制一段弧线,其常用格式有以下两种。1)绘制一段弧线,它表示由Rectangle结构指定的椭圆的一部分,如下所示:Graphics g=this.CreateGraphics();g.DrawArc(Pen myPen,Rectangle rect,startAngle,sweepAngle);DrawArc方法中各参数及说明下表所示:,2)绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分,如下所示:Graphics g=this.CreateGraphics();g.DrawArc(Pen myPen,int x,int y,int width,int height,startAngle,sweepAngle);,2.7 绘制多边形 绘制多边形需要Graphics对象、Pen对象和Point或PointF(对象数组)。Graphics对象提供DrawPolygon方法绘制多边形,Pen对象存储用于呈现多边形的线条属性,例如,宽度和颜色等,Point存储多边形的各个顶点。Pen对象和Point或PointF作为参数传递给DrawPolygon方法。其中数组中的每对相邻的两个点指定多边形的一条边。另外,如果数组的最后一个点和第一个点不重合,则这两个点指定多边形的最后一条边,其常用格式有以下两种:1)绘制由一组Point结构定义的多边形,如下所示:Graphics g=this.CreateGraphics();g.DrawPolygon(Pen myPen,Point points);myPen为Pen对象,用来确定多边形的颜色、宽度和样式。points为Point结构数组,这些结构表示多边形的顶点。,2)绘制由一组PointF结构定义的多边形,如下所示:Graphics g=this.CreateGraphics();g.DrawPolygon(Pen myPen,Point points);myPen为Pen对象,用来确定多边形的颜色、宽度和样式。points为Point结构数组,这些结构表示多边形的顶点。,三、颜色,.NET 框架的 Color 结构用于表示不同的颜色。颜色与画笔和画刷一起使用来指定要呈现的颜色。1.系统定义的颜色 可以通过 Color 结构访问若干系统定义的颜色。这些颜色的示例如下:Color myColor;myColor=Color.Red;Color myColor=Color.Red;上面的语句为myColor 分配系统定义的颜色。,2用户定义的颜色 可以使用 Color.FromArgb()方法创建用户定义的颜色。定义时,可以指定一种颜色中红色、蓝色和绿色各部分的强度。Color myColor=Color.FromArgb(23,56,78);此示例生成一种用户定义的颜色,该颜色大致为略带蓝色的灰色。每个数字均必须是从 0 到 255 之间的一个整数,其中 0 表示没有该颜色,而 255 则为所指定颜色的完整饱和度。因此,Color.FromArgb(0,0,0)呈现为黑色,而 Color.FromArgb(255,255,255)呈现为白色。,3Alpha 混合处理(透明度)Alpha 表示所呈现图形后面的对象透明度。Alpha 混合处理的颜色对于各种底纹和透明度效果很有用。如果需要指定 Alpha 部分,则它应为 Color.FromArgb()方法中四个参数的第一个参数,并且需要从 0 到 255 之间的一个整数。例如:Color myColor=Color.FromArgb(127,23,56,78);此示例创建一种颜色,该颜色为略带蓝色的灰色且透明度大致为 50%。也可以通过指定 Alpha 部分和以前定义的颜色来创建 Alpha 混合处理的颜色。Color myColor=Color.FromArgb(128,Color.Tomato);此示例创建一种颜色,该颜色明度大约为 50%,为系统定义的Tomato 的颜色。,四、文本输出,在实际应用中,常常需要在控件对象中输出文本,.NET中可以在有些控件中“写”出文本。所谓“写”即以字符的编码来对应字符的图像输出,比如,标签、文本框、按钮、列表框等控件,在它们的“Text”属性中保存了要显示的文本字符,改变文本即可以改变显示的字符。而有些控件不能“写”出文本,只能“画”出文本,例如,窗体和图片框等,在这些控件中输出文本,实际上是通过Graphics对象的DrawString方法来画出字符的图像。当然,标签、文本框、按钮、列表框等控件也可以采用这种方法画出文本。,4.1 字体 要输出文本,需要先指定文本的字体,字体可以通过Font类的构造函数来设置。语法格式如下:Font字体对象名=new Font(字体名称,大小,样式,量度)其中:字体对象名:要创建的字体对象名。字体名称:字体的名称,String类型值。如Time New Roman、宋体、楷体。大小:Single类型的值,指定字体的大小,默认单位为点。样式:可选项。指定字体的样式,是FontStyle枚举类型的值,各种样式见表6-5。量度:可选项。指定字体大小的单位,是GraphicsUnit枚举类型的值,各种量度单位见表6-6。,6-5 FontStyle枚举类型的成员,6-6 GraphicsUnit枚举类型的成员,例如:定义一个字体对象,其名称为“隶书”,大小为14,样式为下划线,量度单位为点,代码如下:Font myFont=new Font(“隶书”,14,FontStyle.Underline,GraphicsUnit.Point);,4.2 输出文本当定义了文本字体后,就可以用DrawString方法来输出文本,有以下三种使用DrawString方法的格式。DrawString(字符串,字体对象,画刷,点);DrawString(字符串,字体对象,画刷,X,Y);DrawString(字符串,字体对象,画刷,矩形);其中:字符串:要输出的文本。字体对象:要使用的字体对象名,调用之前应已创建。画刷:指定字体的颜色,使用实心画刷。点:PointFont结构类型,用来指定文本输出的开始位置。X,Y:Single类型的值,用来指定文本输出的开始位置的坐标值。矩形:RectangleF结构类型(不是Rectangle),用来定义一个矩形,矩形的左上角坐标、高度、宽度均为Single型的值,文本在该矩形中输出。,调用 Graphics 对象的 Graphics.DrawString 方法来呈现文本。如果提供 RectangleF 对象,则文本将在矩形中换行。否则,文本将从提供的起始坐标处开始。例如:g.DrawString(Look at this text!,myFont,myBrush,new RectangleF(10,10,100,200);g.DrawString(Look at this text!,myFont,myBrush,85,50);运行结果如下图所示:,五、图形处理,5.1绘制图像 可以使用GDI+在应用程序中呈现以文本形式存在的图像。实现此操作的方法是:创建Image类(如Bitmap)的一个新对象,创建一个Graphics对象(它表示要使用的绘图表面),然后调用Graphics对象的DrawImage()方法,将在图形类所表示的绘图表面绘制图像。在设计时使用“图像编辑器”创建并编辑图像文件,而在运行时使用GDI+呈现它们。,例:设计WinForm应用程序在PictureBox控件中绘制图像。要呈现图像按以下步骤进行。(1)创建一个对象,该对象表示要显示的图像。该对象必须是从 Image(如 Bitmap 或 MetaFile)继承的类的成员。例如:Bitmap myBitmap=new Bitmap(C:MyImagesTestImage.bmp);(2)创建一个 Graphics 对象,该对象表示要使用的绘图表面。例如:Graphics g=pictureBox1.CreateGraphics();(3)调用图形对象的 Graphics.DrawImage 方法来呈现图像。必须同时指定要绘制的图像以及将绘制它的位置的坐标。例如:g.DrawImage(myBitmap,1,1);,

    注意事项

    本文(第六章 图形编程ppt课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开