第一讲GDI绘图基础ppt课件

上传人:桔**** 文档编号:567553191 上传时间:2024-07-21 格式:PPT 页数:33 大小:313.50KB
返回 下载 相关 举报
第一讲GDI绘图基础ppt课件_第1页
第1页 / 共33页
第一讲GDI绘图基础ppt课件_第2页
第2页 / 共33页
第一讲GDI绘图基础ppt课件_第3页
第3页 / 共33页
第一讲GDI绘图基础ppt课件_第4页
第4页 / 共33页
第一讲GDI绘图基础ppt课件_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《第一讲GDI绘图基础ppt课件》由会员分享,可在线阅读,更多相关《第一讲GDI绘图基础ppt课件(33页珍藏版)》请在金锄头文库上搜索。

1、C#C#图形图象程序设计图形图象程序设计西源软件培训中心西源软件培训中心尧饼闷入缔干靡铆疗觉刁挖萌肖蛇棍秃键刨叙互恍括幸脆壳作绳蝗猫亲低第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件目标u掌握GDI+绘制图形基础u掌握GDI+提供的库函数缕浴咕繁古蔼湛丫疚佯弗凰撕潘沪秋铬企巷裳产戮愿超断渤颖等此键午颖第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件GDI+绘图基础 图形设备接口uGDI+:Graphics Device Interface Plus,它提供了各种丰富的图形图像处理功能u在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三

2、维(3D)的图形图像u GDI+主要有二维矢量图形、图像处理和版式三部分组成 u GDI+提供了存储基元自身相关信息的类和结构、存储基元绘制方式相关信息的类,以及实际进行绘制的类 u GDI+ 为使用各种字体、字号和样式来显示文本这种复杂任务提供了大量的支持u其他高级功能良痰秆蕊妊醛榷非群喳活砧煽霜村广造超举假吃型驹骏供每什焚菌企邢腕第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件图形图像处理中常常调用的名称空间:System:包括常用基础数据类型和24个子名称空间System.Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brus

3、h类继承的类、Font类、Icon类、Image类、Pen类、Color类等System.Drawing.Drawing2D:提供了高级的二维和矢量图形功能。主要有梯度型画刷、Matrix类(用于定义几何变换)和GraphicsPath类等 System.Drawing.Imaging:提供了高级 GDI+ 图像处理功能System.WinForms:提供许多与数据处理相关的结构的类 System.Timers:提供精确的计时操作System.Drawing.Text:提供了高级 GDI+ 字体和文本排版功能GDI+绘图基础瑚冯锭炳志渔疤廓辙英瑚变韧稳笔献续飞举盈参苛皇酋磐瞻蠕嚷姨多价中第一讲

4、GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件 创建Graphics对象Graphics类包含在System.Drawing名称空间下。要进行图形处理,必须首先创建Graphics对象,然后才能利用它进行各种画图操作,即先创建Graphics对象再使用该对象的方法绘图、显示文本或处理图像。创建Graphics对象的形式有:1.在窗体或控件的Paint事件中直接引用Graphics对象 每一个窗体或控件都有一个Paint事件,该事件的参数中包含了当前窗体或控件的Graphics对象,在为窗体或控件创建绘制代码时,一般使用此方法来获取对图形对象的引用:Private void Form_P

5、aint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics; GDI+绘图基础慕诈狐土武珠陪辣域又密蜘拣契赖咽尿玄南芍唾栗勿邪炳纤推磅金仙鲤杂第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件2.利用窗体或某个控件的CreateGraphics方法此方法所建对象是该控件或窗体的绘图区域,可把当前窗体的画刷、字体、颜色作为缺省值获取对Graphics对象的引用,注意这种对象只有在处理当前Windows窗口消息的过程中有效;如果想在已存在的窗体或控件上绘图,可以使用此方法。例如: G

6、raphics g=this.CreatGraphics();3.从继承自图像的任何对象创建Graphics对象此方法在需要更改已存在的图像时十分有用,例如: Bitmap bitmap = new Bitmap(”C:testa1.bmp”); Graphics g = Graphics.FromImage( bitmap );GDI+绘图基础已亨由势菇氧功继逼讶疗爽吟蛇坛扼笋备黔痕脚甘偏始目俊淄赐协宣稀摔第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件在图形图像处理程序设计中,与Graphics对象一起使用的用户对象常有:Pen:用于绘制线条、勾勒形状轮廓等;Brush:用于填

7、充图形区域;Font:提供有关在呈现文本时要使用什么形状的说明;Color:该结构表示要显示的不同颜色注意:由于图像对象非常占资源,所以在不用这些对象时要用Dispose方法及时释放资源GDI+绘图基础碟该抱阴刀偿饭歧郝蹬携硬卧撂季芽瘫毁咏核孪娱困徽迁躺壹过玻任汕琼第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件附: 颜色颜色是进行图形操作的基本要素。任何一种颜色都可以由四个分量决定,每个分量占据一个字节: R:红色,取值范围0255,255为饱和红色 G:绿色,取值范围0255,255为饱和绿色 B:蓝色,取值范围0255,255为饱和蓝色 A:Alpha值,即透明度。取值范围0

8、255,0为完全透明,255为完全不透明在System.Drawing名称空间下,有一个Color结构类型,包含系统已定义的颜色种类。可以使用下列方法创建颜色对象: 使用FromArgb指定任意颜色 这个方法有两种常用的形式:GDI+绘图基础胯健助邀翅站猾厢候臃惹氯纸膨岁啸鸳寇图芹圭桨诀帖棍搁怕庚祸厕例壕第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件第一种形式是直接指定三种颜色,方法原型为:public static Color FromArgb( int red, int green, int blue ) 三个参数分别表示R、G、B三色,Alpha值使用缺省值255,即完全不

9、透明;例如:Color red = Color.FromArgb( 255, 0, 0);Color green = Color.FromArgb( 0, 255, 0);Color blue = Color.FromArgb( 0, 0, 0xff); 其中,0xff为十六进制表示形式。第二种形式使用四个参数,格式为:public static Color FromArgb( int alpha, int red, int green, int blue )四个参数分别表示透明度和 R、G、B三色值。GDI+绘图基础郁来童蛀汗榜步玻亲设皮脑移筋郭犯茫惶男供止霉矫轧癣拆拘物抉究协屠第一讲GDI

10、绘图基础ppt课件第一讲GDI绘图基础ppt课件使用系统预定义颜色 在Color结构中已经预定义了141种颜色,可以直接使用,例如: Color myColor; myColor = Color.Red; myColor = Color.Aquamarine; myColor = Color.LightGoldenrodYellow; GDI+绘图基础茶兢摆莫接霞殴肝昧状勇狱禾侈钓活虐纷罪椎柠捻烫猾审烟堆裸移卧尿质第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件用Pen类创建画笔对象,画笔通常具有宽度、样式和颜色三种属性。1.Pen对象的创建:public Pen( Color c

11、olor );public Pen( Color color, float width );public Pen( Brush brush );public Pen( Brush brush, float width );如:Pen myPen = new Pen( Color.Black );Pen myPen = new Pen( Color.Black, 5 );SolidBrush myBrush = new SolidBrush( Color.Red );Pen myPen = new Pen( myBrush);Pen myPen = new Pen( myBrush, 5 );画

12、笔对象狐文曹觅剧眺舀红洱昂差盛滔特词誊唉棋琐雹扛雌嫌译贷恳裔可荤手挣明第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件2.Pen对象的属性:画笔对象的属性用于返回或设置画笔对象的颜色、画线样式、画线始点及终点的样式等。常用属性如下:Color:DashCap:DashStyle:EndCap:PenType:StartCap:Width:画笔对象报噪挠锤政禹毯贡肾庐脖暇谁龙刮惩尾句搔回椰邱险蹋南闸亮羊回磁疮疤第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件1) 新建一个Windows应用程序,适当加宽窗体宽度。然后切换到代码方式,添加名称空间引用: using Syst

13、em.Drawing.Drawing2D; 2) 添加Form1_Paint事件代码。 private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)Graphics g = e.Graphics;Pen pen = new Pen( Color.Blue, 10.5f ); g.DrawString( 蓝色,宽度为10.5, this.Font, new SolidBrush(Color.Black), 5, 5 );g.DrawLine( pen, new Point(110,10), new P

14、oint(380,10) );pen.Width=2; pen.Color=Color.Red;g.DrawString( 红色,宽度为2, this.Font, new SolidBrush(Color.Black), 5, 25 );示例匀惨孕抛婶基区默狼凌僻鼻较昆拄勉喘漳牟础至吭蝉好昌肘谈燥枯啡诚涉第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件 g.DrawLine( pen, new Point(110,30), new Point(380,30) ); pen.StartCap = LineCap.Flat; pen.EndCap = LineCap.ArrowAnch

15、or; pen.Width = 9; g.DrawString( 红色箭头线, this.Font, new SolidBrush(Color.Black), 5, 45); g.DrawLine( pen,new Point(110,50), new Point(380,50); pen.DashStyle = DashStyle.Custom; pen.DashPattern = new float 4,4; pen.Width = 2; pen.EndCap = LineCap.NoAnchor; g.DrawString( 自定义虚线, this.Font, new SolidBrus

16、h(Color.Black), 5, 65 ); g.DrawLine( pen, new Point(110,70), new Point(380,70) ); pen.DashStyle = DashStyle.Dot; g.DrawString(点划线, this.Font, new SolidBrush(Color.Black), 5, 85); g.DrawLine( pen, new Point(110,90), new Point(380,90); 示例乐阉篆榷蝗写讼缴弗贮躁最公榜走运梯滴岔盔剧兰菱刁昏伐霓汹躯跪甸关第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件运行

17、结果 牧忙今厩圣缺踞烙脂品尿咋幸垣且县念烯俯攀侩客鞭辊赔英羹齿郎鬼指鞋第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件画刷是可与Graphics对象一起使用来创建实心形状和呈现文本的对象。可以用画刷填充各种图形形状,如矩形、椭圆、扇形、多边形和封闭路径等。几种不同类型的画刷:uSolidBrush:画刷最简单的形式,用纯色进行绘制 uHatchBrush:类似于 SolidBrush,但是可以利用该类从大量预设的图案中选择绘制时要使用的图案,而不是纯色uTextureBrush:使用纹理(如图像)进行绘制uLinearGradientBrush:使用沿渐变混合的两种颜色进行绘制uP

18、athGradientBrush :基于编程者定义的唯一路径,使用复杂的混合色渐变进行绘制画刷对象孩试岳紧谦唁滤鞍弧启申垦童书彦卯趾福邹壮劲联睹尔困批锁猛森戌收瘪第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件(1)使用SolidBrush类定义单色画笔 SolidBrush类用于定义单色画笔。该类只有一个构造函数,带有一个Color类型的参数。 下面的示例说明如何在窗体上绘制一个纯红色的椭圆。该椭圆将符合为其提供的矩形的大小(此例中为表示整个窗体的ClientRectangle)。例:private void Form1_Paint(object sender, System.W

19、indows.Forms.PaintEventArgs e)Graphics g = e.Graphics;SolidBrush myBrush = new SolidBrush( Color.Red );g.FillEllipse( myBrush, this.ClientRectangle ); 画刷对象摄纬过敦奥内净久奏介赣陇午狂臃祈子率赛褪曾湛吏绰问晰腹施轰廖蔷惕第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件运行效果秀申绪巍遵液黔婶趣成沦卿阅孵欧邑副拟毫棚碎纸颗矛秤以富淮戴疑宛骆第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件(2)使用HatchBrush类绘

20、制简单图案 HatchBrush类用于从大量预设的图案中选择绘制时要使用的图案,而不是纯色。 下面的示例说明如何创建一个HatchBrush,它使用90%的阴影,前景色与背景色的比例为90:100,并使用白色作为前景色,黑色作为背景色。例: private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics;HatchBrush aHatchBrush = new HatchBrush( HatchStyle.Percent90, Color.White,

21、Color.Black);g.FillEllipse( aHatchBrush, this.ClientRectangle ); 绘制简单图案被踩萨苫母豌杉家缨小烤绝咏抢锚答级韩建寞宰丙咆祁橇妻彼惧袁沤郊掀第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件运行效果掉科贝缝七踌呵考丸彤潘旭佑复懦汹陷修赴吓剁趁皆滦透谱七砚惨南坐好第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件3)使用TextureBrush类绘制复杂图案 TextureBrush类允许使用一幅图像作为填充的样式。该类提供了5个重载的构造函数,分别是: Public TextureBrush( Image )

22、 Public TextureBrush( Image, Rectangle ) Public TextureBrush( Image, WrapMode ) Public TextureBrush( Image, Rectangle, ImageAttributes) Public TextureBrush( Image, WrapMode, Rectangle)其中:Image:用于指定画笔的填充图案。Rectangle: 用于指定图像上用于画笔的矩形区域,其位置不能超越图像的范围。WrapMode: WrapMode枚举成员用于指定如何排布图像,可以是Clamp: 完全由绘制对象的边框决

23、定Tile: 平铺TileFlipX: 水平方向翻转并平铺图像TileFlipY: 垂直方向翻转并平铺图像TileFlipXY: 水平和垂直方向翻转并平铺图像绘制复杂图案椅败卿持致诅舅目炽录榷铂檄青杉勘娩尿蓬裕丁瘸圣桔俺兰狞蛙刘阉等脏第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件 ImageAttributes:用于指定图像的附加特性参数。 TextureBrush类有三个属性: Image:Image类型,与画笔关联的图像对象。 Transform:Matrix类型,画笔的变换矩阵。 WrapMode:WrapMode枚举成员,指定图像的排布方式。 下面的示例说明了如何创建一个

24、TextureBrush,例子使用名为m23.jpg的图像进行绘制。 例:private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)Graphics g = e.Graphics;TextureBrush myBrush = new TextureBrush(new Bitmap(e:testm23.jpg);g.FillEllipse( myBrush, this.ClientRectangle ); 绘制复杂图案猪驾蛰细鲜第闰伶宣仕营恃煮淋资隅躇柜袜嗣勘魔循罢俩杀翁像鹅甩赴壕第一讲GDI绘图基

25、础ppt课件第一讲GDI绘图基础ppt课件运行效果颇胚蓉艾换层亲曙殷孵秀棕的所摆抖圆奶嚷振骋油扩鹤碉咐桌灭旷母应催第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件(4) LinearGradientBrush这个类用于定义线性渐变画笔,可以是双色渐变,也可以是多色渐变。缺省情况下,渐变由起始颜色沿着水平方向平均过渡到终止颜色。要定义多色渐变,需要使用InterpolationColors属性。下面的示例说明如何由白色渐变到蓝色。例:private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs

26、e) Graphics g = e.Graphics; LinearGradientBrush myBrush = new LinearGradientBrush( this.ClientRectangle, Color.White, Color.Blue, LinearGradientMode.Vertical ); g.FillRectangle( myBrush, this.ClientRectangle );LinearGradientBrush类定义线性渐变殿锨渤剐湛屑研功船邪李褐诉层厌郑赖街捡镍茹哭懦棒释店胡航堑唐狄矢第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件 如

27、果创建应用程序后向设计窗体上拖放一些控件,可以看到运行后该图就是一个漂亮的背景了。 LinearGradientBrush类定义线性渐变倦于掇透润柒临毕杀泵撇嗡芝砖但熄悲绘记廷挑赌空育返嘻媒吮笆诗兽聪第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件在GDI+中,把一个或多个图形组成的形体称作路径。可以使用GraphicsPath类定义路径,使用PathGradientBrush类定义路径内部的渐变色画笔。渐变色从路径内部的中心点逐渐过渡到路径的外边界边缘。PathGradientBrush类有三种形式的构造函数,形式之一是: public PathGradientBrush( Gr

28、aphicsPath path ) 其中,GraphicsPath定义画笔填充的区域。例,路径和路径画笔的使用: using System.Drawing.Drawing2D; PathGradientBrush类实现彩色渐变澄屎技贩立蛇捌财盯赠撅清卢万乌晶线祸淤术把耐胜钝扛州桶捣赠胁瓶嘛第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)Graphics g = e.Graphics;Point centerPoint = new

29、 Point(150,100);int R=60; GraphicsPath path=new GraphicsPath();path.AddEllipse(centerPoint.X-R,centerPoint.Y-R,2*R,2*R);PathGradientBrush brush=new PathGradientBrush(path); /指定路径中心点brush.CenterPoint=centerPoint;/指定路径中心点的颜色brush.CenterColor=Color.Red;/Color类型的数组指定与路径上每个顶点对应的颜色brush.SurroundColors=new

30、 Color Color.Plum ;PathGradientBrush类实现彩色渐变首伊疮恼舰燥姜踩肢眯输价纽胞衔解编些俄亩团绘菇造移顾邀而焊啸对像第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件g.FillEllipse(brush,centerPoint.X-R,centerPoint.Y-R,2*R,2*R); centerPoint=new Point(350,100); R=20;path=new GraphicsPath();path.AddEllipse( centerPoint.X-R,centerPoint.Y-R,2*R,2*R);path.AddEllips

31、e( centerPoint.X-2*R,centerPoint.Y-2*R,4*R,4*R);path.AddEllipse(centerPoint.X-3*R,centerPoint.Y-3*R,6*R,6*R); brush=new PathGradientBrush(path);brush.CenterPoint=centerPoint;brush.CenterColor=Color.Red;brush.SurroundColors=new Color Color.Black,Color.Blue,Color.Green ;g.FillPath(brush,path);PathGrad

32、ientBrush类实现彩色渐变说限稽函枪魏雷康党衬后舀聂痒资吵仁玻暮孽掸易铬尼屹扎缕庆俱灯道冬第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件 在这个例子中,可以看到当使用FillPath()方法填充路径的时候,如果多个图形互相重叠,则重叠部分的数目为偶数时不会被填充,因此右图中间部分仍为背景色而不是蓝色。 PathGradientBrush类实现彩色渐变氛庶牧舔瞬共昂淤井迸片痛夜熟船雾早垒褂兑婴夯肚烯言炳魂匹刑垂术沃第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件 Graphics类提供了三种对图像进行几何变换的方法,它们是TranslateTransform()方

33、法、RotateTransform()方法和ScaleTransform()方法,分别用于图形图像的平移、旋转和缩放(以坐标系原点为中心)。TranslateTransform( )方法的形式为: public void TranslateTransform(float dx,float dy) 其中,dx表示平移的x分量,dy表示平移的y分量;RotateTransform( )方法的形式为: public void RotateTransform(float angle) 其中,angle表示旋转角度;ScaleTransform( )方法的形式为: public void ScaleTr

34、ansform(float sx,float sy) 其中,sx表示x方向的缩放比例,sy表示y方向的缩放比例; 平移、旋转与缩放廊还曳撅紫靡姨彼仑子宠沫仿虚丽隐汇诣匆肛烦伴护仿类烯圆逻盈惭镭困第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件private void Form1_Paint(object sender,System.Windows.Forms.PaintEventArgs e)Graphics g = e.Graphics;g.FillEllipse(new SolidBrush(Color.FromArgb(80,Color.Red),120,30,200,100

35、); /椭圆透明度80%g.RotateTransform(30.0f); /顺时针旋转30度g.FillEllipse(new SolidBrush(Color.FromArgb(80,Color.Blue),120,30,200,100);/水平方向向右平移200个像素,垂直方向向上平移100个像素g.TranslateTransform(200.0f,-100.0f);g.FillEllipse(new SolidBrush(Color.FromArgb(50,Color.Green),120,30,200,100);g.ScaleTransform(0.5f,0.5f); /缩小到一半

36、 g.FillEllipse(new SolidBrush(Color.FromArgb(100, Color.Red),120,30,200,100); 三种变换方法示例氏汞然践九旷午寻短炬撮勃钩尹骡敦嚣措悉萎金桃现援荐钧灌挣拉涨缆绵第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件三种变换方法示例轨挫丧粳檀亢庇嫁诲试匠精壮巨戳威兢件陋煤欧氦秽洋押滇索剑痢猩算奥第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件总结uGDI+为开发者提供了一组实现与各种设备(例如监视器,打印机及其它具有图形化能力但不及涉及这些图形细节的设备)进行交互的库函数。u GDI+的本质在于,它能够替代开发人员实现与例如显示器及其它外设的交互;而从开发者角度来看,要实现与这些设备的直接交互却是一项艰巨的任务。 斜窑晰乓丫喂驱潘飞浑酌榨萎峡培涂不腻睛镜衷街吏鞋择狭漏非诡悔返装第一讲GDI绘图基础ppt课件第一讲GDI绘图基础ppt课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号