绘制图形
一、 绘制图形。
我们平时在OnPaint事件当中总是往窗体上绘制文字,其实在Graphics类中有很多绘制图形的方法,这节课我们就来学习在Graphics绘制类中都有哪些图形我们可以绘制。
我们都知道绘制就必须要有画笔和画刷,如果没有这两样工具我们的绘制是不能进行的,在现实生活中是这样,在我们的电脑绘制中也是这样,所以说我们应该先来学习如何制作一根画笔和画刷。
二、 Pen(画笔类)。
Pen类是C#语言当中专门的画笔类,在我们学习绘制图形时一定要使用到的。
使用方式1:Pen p1 = new Pen(Color.black); //第一种方法是用系统颜色来初始化我们的画笔类的,我们可以通过系统为我们准备好的Color静态类里的颜色给我们的画笔使用
使用方式2:Pen p2 = new Pen(Color. FromArgb(给定3种颜色值));
//第二种方法是用系统为我们准备的自己配色的方法,每种颜色都是用数字来代替的,不用超过255。
三、 Brush(画刷类)。
Brush是C#语言当中的画刷类,相信我们对这个类也应该不是很陌生了吧,在我们使用DrawString方法时,第二个参数就是要这个参数。
使用方式1:Brush bs = new SolidBrush(Color.black); //这个类是不允许直接构造对象的,如果想要构造对象就只能使用SolidBrush类为他专门构造对象,参数可以设置颜色。
四、 Graphics(绘制类)方法。
返回值类型 |
方法 |
说明 |
Void |
DrawString |
绘制文字。 |
Void |
DrawLine |
绘制直线。 |
Void |
DrawEllipse |
绘制圆形。 |
Void |
DrawRectangle |
绘制矩形。 |
Void |
DrawPie |
绘制扇形。 |
1、 绘制直线。
DrawLine使用方式1:DrawLine(Pen p1,Point pt1,Point pt2);
DrawLine使用方式2:DrawLine(Pen p1,int x1,int y1,int x2,int y2);
绘制直线,指定从一个点绘制到另外一个点。
2、 绘制圆形。
DrawEllipse使用方式1:DrawEllipse(Pen p1,Rectangle rect);
DrawEllipse使用方式2:DrawEllipse(Pen p1,int x,int y,int Width,int Height);
绘制圆形,绘制圆形是根据一个矩形来进行绘制的。
3、 绘制矩形。
DrawRectangle使用方式1:DrawRectangle(Pen p1,Rectangle rect);
DrawRectangle使用方式2:DrawRectangle(Pen p1,int x,int y,int Width,int Height);
绘制矩形与绘制圆形一样。
4、 绘制扇形
DrawPie使用方式1:DrawPie(Pen p1,Rectangle rect,int startAngle,int sweepangle);
DrawPie使用方式2:DrawPie(Pen p1,int x,int y,int Width,int Height,int startAngle,int sweepangle);
绘制扇形需要一个矩形来决定扇形的起始位置和大小,还需要使用两个值来确定扇形的弧度。
例:
using System;
using System.Windows.Forms;
using System.Drawing;
namespace Hty
{
class MyForm : Form
{
static void Main()
{
Application.Run(new MyForm());
}
public MyForm()
{
this.Text = "绘制图形";
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Pen p1 = new Pen(Color.FromArgb(100,100,100));
Graphics grfz = e.Graphics;
grfz.DrawLine(p1, 10, 10, 100, 100);
grfz.DrawEllipse(p1, 50, 50, 100, 100);
grfz.DrawRectangle(p1, 100, 100, 100, 100);
grfz.DrawPie(p1, 120, 120, 100, 100,50, 50);
}
}
}
五、 Graphics(绘制类)颜色填充方法。
返回值类型 |
方法 |
说明 |
Void |
FillEllipse |
填充原形。 |
Void |
FillRectangle |
填充矩形。 |
Void |
FillPie |
填充扇形。 |
1、 填充圆形。
FillEllipse使用方式1:FillEllipse(brush p1,Rectangle rect);
FillEllipse使用方式2:FillEllipse(brush p1,int x,int y,int Width,int Height);
填充圆形,填充圆形是根据一个矩形来进行绘制的。
2、 填充矩形。
FillRectangle使用方式1:FillRectangle (brush p1,Rectangle rect);
FillRectangle使用方式2:FillRectangle(brush p1,int x,int y,int Width,int Height);
填充矩形与填充圆形一样。
3、 填充扇形
FillPie使用方式1:FillPie(brush p1,Rectangle rect,int startAngle,int sweepangle);
FillPie使用方式2:FillPie(brush p1,int x,int y,int Width,int Height,int startAngle,int sweepangle);
填充扇形需要一个矩形来决定扇形的起始位置和大小,还需要使用两个值来确定扇形的弧度。
例:
using System;
using System.Windows.Forms;
using System.Drawing;
namespace Hty
{
class MyForm : Form
{
static void Main()
{
Application.Run(new MyForm());
}
public MyForm()
{
this.Text = "绘制图形";
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Pen p1 = new Pen(Color.FromArgb(100,100,100));
Graphics grfz = e.Graphics;
grfz.DrawLine(p1, 10, 10, 100, 100);
grfz.DrawEllipse(p1, 50, 50, 100, 100);
grfz.DrawRectangle(p1, 100, 100, 100, 100);
grfz.DrawPie(p1, 120, 120, 100, 100,50, 50);
grfz.FillEllipse(Brushes.Black, 50, 50, 100, 100);
grfz.FillRectangle(Brushes.Firebrick, 100, 100, 100, 100);
grfz.FillPie(Brushes.Fuchsia, 120, 120, 100, 100, 50, 50);
}
}
}