GDI+在.NET Framework2.0中提供二维图形、图像处理等功能。GDI+在GDI(较早版本的Windows中提供的Graphics Device Interface)的基础上进行了改进,添加了新功能并改进了现有功能。GDI+主要用于在窗体上绘制各种图形图像,可以用于绘制各种数据图形,数学仿真等。GDI+可以在窗体程序中产生很多自定义图形,便于开发人员展示各种图形化的数据。
一、GDI+概述
GDI+的主要功能是通过Graphics类实现的,Graphics类封装了一个GDI+绘图图面。Graphics对象表示GDI+绘图表面,是用于创建图形图像的对象。绘图时需要先创建Graphics对象,然后才可以使用GDI+绘制线条和形状、呈现文本或显示与操作图像。绘制图形包括两个步骤:
1、创建Graphics对象
2、使用Graphics对象绘制线条和形状、呈现文本或显示与操作图像
创建Graphics对象有以下三种方法:
1、在窗体或控件的Paint事件中进行对图形对象的引用,作为PaintEventArgs的一部分。在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用。如下:
private void Form1_Paint(object sender,System.Windows.Forms.PaintEventArgs pe)
{
Graphics g=pe.Graphics;
}
2、调用某控件或窗体的CreateGraphics方法以获取对Graphics对象的引用,该对象表示该控件或窗体的绘图图面。如果想在已存在的窗体或控件上绘图,应该使用此方法:
Graphics g;
g=this.CreateGraphics();
3、由从Image继承的任何对象创建Graphics对象。此方法在需要更改已存在的图像时十分有用。如下:
Bitmap myBitmap=new Bitmap(@ "C:\myPic.bmp");
Graphics g=Graphics.FromImage(myBitmap);
在创建完毕Graphics对象后,可将其应用于绘制线条和形状、呈现文本或显示与操作图像。与Graphics对象一起使用的主要对象如下4种:
1、Pen类:Pen类主要用于绘制线条,或者用线条组合成的其他几何形状。
2、Brush类:Brush类主要用于填充几何图形,如将正方形和圆形填充成其他颜色。
3、Font类:Font类主要用于控制文本的字体样式。
4、Color结构:可以设置不同颜色。
二、创建函数图形
函数图形是一类经常用到的功能,特别是在科学计算中。在一般的情况下,函数图形选用平滑的曲线进行描绘,这就需要用到GDI+中提供的DrawBeziers方法。DrawBeziers方法与普通的DrawLines方法不同,DrawBeziers方法画出的是贝兹曲线,非常平滑。
实例介绍如何使用C#创建简单的函数图形描绘方法:
private void button1_Click(object sender,EventArgs e)
{
//声明一个用于绘图的Graphics对象
Graphics g=this.CreateGraphics();
//声明用于绘图的点集,程序将通过这些点的坐标进行绘图
PointF[ ] points=new PointF[100];
//分别计算各个点的函数值
for(int i=0;i<100;i++)
{
points[i].X=i*100;
points[i].Y=(Compute((double)i))*50;
}
try
{
g.DrawBeziers(new Pen(Color.Blue),points);//画图
}
catch(Exception ex)
{
MessageBox.show(ex.Message);
}
}
///<summary>
///函数值计算
///</summary>
///<param name="x">横坐标的值</param>
///<returns>纵坐标的值</returns>
private float Compute(double x)
{
double y;
//此处可以编写其他的函数,本实例为x∧2
Y=Math.Pow(x,2);
return (float)y;
}