Presentation is loading. Please wait.

Presentation is loading. Please wait.

Windows Form绘图类及其简介.

Similar presentations


Presentation on theme: "Windows Form绘图类及其简介."— Presentation transcript:

1 Windows Form绘图类及其简介

2 什么是GDI+ GDI(Graphicsal Device Interface):把选中的项目放到设备环境(device context)对象上的一种状态模型(GDI的目的:把硬件的功能抽象到一个相对高级的API中),所有的绘图工作都必须通过设备环境来完成 GDI+ :无状态的模型,是GDI的一个包装,每个绘图操作都是独立的。保留了设备环境,包装在Graphics

3 Namespace System.Drawing System.Drawing.Drawing2D
System.Drawing.Imaging System.Drawing.Text System.Drawing.Printing

4

5 重要类-Graphics(一) Graphics:大部分的绘图工作都要通过它完成。相当于是GDI保留下来的设备环境(DC)。
1、在OnPaint事件中使用: Portected override void OnPaint(PaintEventArgs pea){ Graphics grfx = pea.Graphics; }

6 重要类-Graphics(二) 2、在其它情况下使用 Graphics grfx = this.CreateGraphics();
常用方法: DrawArc:绘制圆弧 DrawBezier:绘制贝塞尔曲线 DrawBeziers:绘制贝塞尔曲线组 DrawClosedCurve:绘制封闭曲线 DrawCurve:绘制曲线 DrawEllipse:绘制椭圆

7 创建Graphics对象 Demo 1

8 重要类-Graphics(三) DrawIcon:绘制图标 DrawImage:绘制图象 DrawLine:绘制直线
DrawLines:绘制直线组 DrawPie,DrawPolygon,DrawRectangle……

9 Graphics 中的DrawXXX()方法
Demo 2

10 重要类-Graphics(四) Graphics对象绘制实心图形方法 FillEllipse:封闭实心椭圆 FillPie:绘制实心圆饼
FillPolygon:绘制实心多边形 ……

11 Graphics中的FillXXX()方法
Demo 3

12 常用类 画刷(Brush):填充 画笔(Pen):绘制各种直线和曲线 图像(Image): 字体(Font):
位图(Bitmap 光栅图片)、元文件(Metafile 矢量图片,可以缩放而不损失清晰度,元文件将一幅图片描述为一个图形函数调用的集合,因此它们通常占用很少的空间,相对于位图而言,更加设备无关性 *.wmf(16位元文件) *.emf(32bit))

13 演示各种Brush之间的区别 Demo 4

14 常用结构 颜色(Color)、大小(Size&SizeF)、 点( Point&PointF )、

15 常见图形 多边形(Polygon)、矩形( Rectangle&RectangleF )、
椭圆(Ellipse)、贝塞尔曲线(Bezier)、直线(Line)、

16 Form相关属性 ClientSize:客户区大小,在许多应用程序中,客户区域就是有白色背景的区域 Anchor:锚点
Size:Form的大小

17 重要方法 OnPaint Invalidate

18 Invalidate()方法的使用 Demo 5

19 颜色 请问计算机世界里有多少种颜色 创建:Color clr = Color.White;
Color clr = Color.FromArgb(200,0,255); Color clr = Color.FromName(“White”); 红(R)、绿(G)、蓝(B)三原色,256*256*256 = 2^24>1600万

20 GDI+的三种坐标空间 世界坐标:对应于GDI中的逻辑坐标,与设备无关。定义为:带有小圆的圆心为原点o, x轴水平向右,y轴向下,z由右手法则确定 页面坐标:类似于设备坐标,测量单位是像素 设备坐标:测量单位是用户通过调用Graphics.PageUnit属性制定的单位,默认为像素(Pixel),还可以是英寸(Inch)和毫米(Millimeter)

21 贝塞尔艺术作品(一) 使用贝塞尔曲线创建的有趣的设计和样式(通常涉及for循环)
贝塞尔曲线的有趣之处更在于它的“皮筋效应”也就是说,随着点有规律地移动,曲线将产生皮筋伸引一样的变换,带来视觉上的冲击 Graphics.DrawBezier()

22 贝塞尔艺术作品(二)

23 贝塞尔艺术作品展 Demo 6

24 .NET的不足 C#不是一门性能很高的语言,不是为追求性能而设计 图像处理本身性能要求高、如果反应不及时,系统就忙不过来

25 .NET的绘图性能不足演示 Demo 7

26 补充:双缓冲 可以这样理解:把电脑屏幕看作一块黑板。首先我们在内存环境中建立一个“虚拟“的黑板,然后在这块黑板上绘制复杂的图形,等图形全部绘制完毕的时候,再一次性的把内存中绘制好的图形“拷贝”到另一块黑板(屏幕)上。采取这种方法可以提高绘图速度,极大的改善绘图效果。 一种使用两个缓冲区的方法,一个用于显示,另一个用于涂色描绘。在其中一个缓冲区用于显示时,另一个缓冲区通过一个涂色描绘引擎操作。当一帧新的帧图面描绘完成后,两个缓冲区交换。因此观看者总能看到完美的图像。

27 双缓冲示例 Demo 8


Download ppt "Windows Form绘图类及其简介."

Similar presentations


Ads by Google