C#关于GDI+绘图(一)

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值