GDI+绘图

[GDI+绘图]编程

  • GDI+指的是.NETFramework 4.0中提供二维图形、图像处理等功能,是构成Windows操作系统的一个子系统,它提供了图形图像操作的应用程序编程接口(API)。
  • 使用GDI+可以用相同的方式在屏幕或打印机上显示信息,而无须考虑特定显示设备的细节。GDI+类提供程序员用以绘制的方法,这些方法随后会调用特定设备的驱动程序。GDI+将应用程序与图形硬件分隔,使程序员能够创建与设备无关的应用程序。
  • GDI+主要用于在窗体上绘制各种图形图像,可以用于绘制各种数据图形、数学仿真等。GDI+可以在窗体程序中产生很多自定义的图形,便于开发人员展示各种图形化的数据。

一、创建Graphics对象

(1)在Paint事件中创建Graphics对象。

1 private void Form1_Paint(object sender, PaintEventArgs e)
2 {
3      Graphics g = e.Graphics;
4 }

(2)在窗体的Load事件中,通过CreateGraphics方法创建Graphics对象。

1 private void Form1_Load(object sender, EventArgs e)             
2 
3 {
4 
5      Graphics g;            
6 
7      g = this.CreateGraphics();    
8 
9 }

(3)在窗体的Load事件中,通过FromImage方法创建Graphics对象。

1 private void Form1_Load(object sender, EventArgs e)              
2 
3 {
4 
5      Bitmap mbit = new Bitmap(@"C:\ls.bmp");        
6 
7      Graphics g = Graphics.FromImage(mbit);
8 
9 }

二、创建Pen对象

Pen类主要用于绘制线条,或者线条组合成的其他几何形状。Pen类的构造函数如下。

语法:

      public Pen (Color color,float width)

      color:设置Pen的颜色。

      width:设置Pen的宽度。

例如:

1      //实例化一个Pen类,并设置其颜色和宽度
2 
3      Pen mypen1 = new Pen(Color.Blue, 2);

三、创建Brush对象

Brush类主要用于填充几何图形,如将正方形和圆形填充其他颜色。Brush类是一个抽象基类,不能进行实例化。若要创建一个画笔对象,需使用从Brush派生出的类,如下面的3个派生子类: 

(1)SolidBrush类,构造器如下:

1 public SolidBrush(Color color)
2 color:表示此画笔的颜色。

(2)HatchBrush类,构造器如下:

1 public HatchBrush (HatchStyle hatchstyle,Color foreColor)
2 hatchstyle:HatchStyle值之一,表示此HatchBrush所绘制的图案
3 foreColor:Color结构,它表示此HatchBrush所绘制线条的颜色。

(3)LinerGradientBrush类,构造器如下:

1 public LinerGradientBrush(Point point1, Point point2,Color color1, Color color2)

四、绘图实例

(1) 绘制柱形图

柱形图也称为条形图,是程序开发中比较常用的一种图表技术。柱形图是通过Graphics类中的FillRectangle方法实现的,此方法用于填充由一对坐标、一个宽度和一个高度指定的矩形的内部,语法如下:

1 public void FillRectangle (Brush brush, int x, int y, int width, int height)

(2) 绘制拆线图

折线图可以很直观地反映出相关数据的变化趋势,折线图主要是通过绘制点和折线实现的。绘制点是通过Graphics类中的FillEllipse方法实现的,语法如下:

1 public void FillEllipse (Brush brush,int x,int y,int width,int height)

(3) 绘制饼状图

饼形图可以很直观地查看不同数据所占的比例情况,通过Graphics类中的FillPie方法,可以方便地绘制出饼形图,语法如下:

1 public void FillPie (Brush brush, int x, int y, int width, int height, int startAngle, int sweepAngle)

 

posted @ 2021-05-12 09:17  知易行难-子轩  阅读(532)  评论(0)    收藏  举报