G++’s Family

   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等程序中的窗体是以左上角为坐标原点,如下图:

G++’s Family_第1张图片

另外画图的话需要的材料主要有:笔、纸、主体

(这里是抽象概况的说法,画图工具中的“画笔”等归为“笔”一类,“画板”归为‘纸“一类,主体主要是指画图这一行为的直接发出者,比如人等)

 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);                                                                                                                               }

  素颜 :       

        G++’s Family_第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);
        }

外貌协会

G++’s Family_第3张图片

还有一个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++’s Family_第4张图片


此外利用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++’s Family_第5张图片

上面是G++Family的主要成员,代码写的比较固定,不过利用这些大家可以自由发挥,让他们发挥自己的终极价值。


Thanks  your  time(*^__^*) 


你可能感兴趣的:(vs,g++,画图)