G++
图形设备接口(Graphics Device Interface或Graphical Device Interface,缩写GDI),是微软公司视窗操作系统(Microsoft Windows)的三大核心部件(也称“子系统”)之一。GDI是微软视窗系统表征图形对象及将其传送给诸如显示器、打印机之类输出设备的标准。GDI类似Macintosh传统的QuickDraw。
简单的说:G++就是一种绘图工具,它能够编写与装置无关的应用程序,并且不需要注意特定显示装置的详细数据。
在VS中System.Drawing是对G++基本图形功能访问的类,不需要导入;
System.Drawing.Imaging:高级GDI+图像处理功能的类;
System.Drawing.Text:高级GDI+排版功能的类,容许创建、使用多种字体的类;
下面就结合VS中的例子来认识一下这位新朋友 。首先要明确一下前提,在VS等程序中的窗体是以左上角为坐标原点,如下图:
另外画图的话需要的材料主要有:笔、纸、主体
(这里是抽象概况的说法,画图工具中的“画笔”等归为“笔”一类,“画板”归为‘纸“一类,主体主要是指画图这一行为的直接发出者,比如人等)
private void button1_Click(object sender, EventArgs e) { //两点连接一直线 //first point Point p_1 = new Point(100, 210); //second point Point p_2 = new Point(300, 190); //pen类指定线宽和线的模式,可用各种模式填充(取决于Brush画刷,或填充对象的纹理) //工具 pen 实例化 Color颜色(注意大写) Pen p = new Pen(Color.Red); //画图对象———主体 /Graphics/类,不能实例化;其采用面向对象的封装技术,对象绘制到设备 //CreateGraphics方法获取对Graphics对象(g)的引用, Graphics g = this.CreateGraphics(); //创建控件中Graphics对象 //print line g.DrawLine(p, p_1, p_2); }
素颜 :
Graphics是一个很强大的类,他提供了非常多的绘图方法,常见的绘图方法有:
DrawLine(直线) DrawRectangle(矩形) DrawEllipse(椭圆) DrawCurye(曲线) DrawArx(弧线) DrawPie(扇形)
DrawLines(多边形) DrawPolygon(封闭多边形) DrawBezier(贝兹曲线)等等,下面再请一位friend来帮我们了解和扩展一下:
private void btnTg_Click(object sender, EventArgs e) { //画矩形 Graphics g = this.CreateGraphics(); Pen p = new Pen(Color.Blue);//蓝色 //size(sizeF结构体)有width、height属性,结构体代表浮点数类型,且可实现size到point、size到sizeF转换 //属性,三重载(宽,高) Size size = new Size(200, 150); //Rectangle(RectangleF结构体)有左上角X/Y、width、height属性 //结构,三个重载;(起点,坐标) Rectangle rec = new Rectangle(new Point (300,300),size); g.DrawRectangle(p, rec); }
外貌协会:
还有一个brush类,This little girl 比较 shy,快到最后了再结合一下例子来向大家介绍一下:
private void btnFlString_Click(object sender, EventArgs e) { //填充矩形 Graphics g = this.CreateGraphics(); Size size=new Size (200,150); //brush画刷类,指定填充区域颜色、样式,该处以绿色填充起点为(75,75)高200、宽150的Rectangle(矩形) g.FillRectangle(Brushes.Green, new Rectangle(new Point(75, 75), size)); }
庐山真面目:
此外利用G++还可以画“文本”:This is so cool
private void btnString_Click(object sender, EventArgs e) { //point F小数 Graphics g = this.CreateGraphics(); //20磅隶书,画笔颜色为紫色,起点位置(180,200) g.DrawString(" WOwa****NICE TO MEET YOU, YOU LOOK GREAT!!",new Font ("隶书",20),Brushes .Purple ,new Point (180,200)); }素颜 :
上面是G++Family的主要成员,代码写的比较固定,不过利用这些大家可以自由发挥,让他们发挥自己的终极价值。
Thanks your time(*^__^*)