前言:
此时姐妹们对“绘制填充矩形的方法为”大体比较讲究,朋友们都想要知道一些“绘制填充矩形的方法为”的相关内容。那么小编同时在网摘上收集了一些关于“绘制填充矩形的方法为””的相关内容,希望你们能喜欢,我们快快来了解一下吧!CSharp代码示例每日一讲,为刚刚学习编程的人准备,利用最简单的代码介绍CSharp编程知识!
画笔Pen被用来绘制图形、形状,画刷用来填充图形形状的内部。今天,我们将介绍图形类的填充方法。您只能填充某些图形形状;在Graphics类中只有少量的填充方法。
FillCloseCurve方法
FillCloseCurve填充曲线的内部,填充曲线的第一个参数是画刷,它可以是实心画刷solid brush, 影线画刷hatch brush, 或者渐变画刷gradient brush。第二个参数是绘制点的数组,第三和第四参数是可选的。第三个参数是FillMode填充模式,填充模式是个枚举类型,表示填充模式。 FillMode枚举指定填充闭合路径的方式。它有两种模式:交替 alternate 或围绕winding。默认模式是交替的。填充模式只在曲线与自身相交时才重要。
要使用FillClosed填充一个封闭的曲线,应用程序首先创建一个画笔对象和一个指向该曲线的点数组。然后应用程序可以设置填充模式和张力(可选),最后调用FillClosedCurve方法进行填充。
示例:创建了一个PointF结构数组和一个SolidBrush对象,并调用FillClosedCurve。
使用FillClosedCurve填充闭合曲线
private void Form1_Paint (object sender, System.Windows.Forms.PaintEventArgs e) { // Create a pen Pen bluePen = new Pen (Color.Blue, 1); // Create an array of points PointF pt1 = new PointF(40.0F, 50.0F); PointF pt2 = new PointF(50.0F, 75.0F); PointF pt3 = new PointF(100.0F, 115.0F); PointF pt4 = new PointF(200.0F, 180.0F); PointF pt5 = new PointF(200.0F, 90.0F); PointF[] ptsArray = { pt1, pt2, pt3, pt4, pt5 }; // Fill a closed curve float tension = 1.0F; FillMode flMode = FillMode.Alternate; SolidBrush blueBrush = new SolidBrush(Color.Blue); e.Graphics.FillClosedCurve(blueBrush,ptsArray,flMode,tension); // Dispose of object blueBrush.Dispose(); }
填充方法:
MethodDescription FillCloseCurve
Fills the interior of a closed cardinal spline curve defined by an array of Point structures.
FillEllipse
Fills the interior of an ellipse defined by a bounding rectangle specified by a pair of coordinates, a width and a height.
FillPath
Fills the interior of a GraphicsPath object.
FillPie
Fills the interior of a pie section defined by an ellipse specified by a pair of coordinates, a width, a height, and two radial lines.
FillPolygon
Fills the interior of a polygon defined by an array of points specified by Point structures.
FillRectangle
Fills the interior of a rectangle specified by a pair of a coordinates, a width, and a height.
FillRectangles
Fills the interiors of a series of rectangles specified by Rectangle structures.
FillRegion
Fills the interiors of a Region object.
FillEllipse方法
FillEllipse填充椭圆的内部。它使用画刷对象和矩形坐标。
要使用FillEllipse填充椭圆,应用程序将创建一个画刷和一个矩形,并调用FillEllipse。
下面代码创建三个笔刷,并调用FillEllipse用画刷填充椭圆。
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g = e.Graphics; // Create brushes SolidBrush redBrush = new SolidBrush(Color.Red); SolidBrush blueBrush = new SolidBrush(Color.Blue); SolidBrush greenBrush = new SolidBrush(Color.Green); //Create a rectangle Rectangle rect = new Rectangle(80, 80, 50, 50); // Fill ellipses g.FillEllipse(greenBrush, 40.0F, 40.0F, 130.0F, 130.0F); g.FillEllipse(blueBrush, 60, 60, 90, 90); g.FillEllipse(greenBrush, 100.0F, 90.0F, 10.0F, 30.0F); // Dispose of objects blueBrush.Dispose(); redBrush.Dispose(); greenBrush.Dispose(); }
结果如下:
FillPath方法
FillPath填充图形路径的内部,为此,应用程序创建画刷和图形对象,并调用FillPath,该方法以画刷和图形路径作为参数。
创建GraphicsPath和SolidBrush对象,并调用FillPath,代码如下:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { // Create a solid brush SolidBrush greenBrush = new SolidBrush(Color.Green); // Create a graphics path GraphicsPath path = new GraphicsPath(); // Add a line to the path path.AddLine(20, 20, 103, 80); // Add an ellipse to the path path.AddEllipse(100, 50, 100, 100); // Add three more lines path.AddLine(195, 80, 300, 80); path.AddLine(200, 100, 300, 100); path.AddLine(195, 120, 300, 120); // Create a rectangle and call AddRectangle Rectangle rect = new Rectangle(50, 150, 300, 50); path.AddRectangle(rect); // Fill path e.Graphics.FillPath(greenBrush, path); // Dispose of object greenBrush.Dispose(); } }
如图所示,填充方法填充图形路径的所有覆盖区域。
FillPie方法
FillPie用指定的画笔填充pie部分。它有四个参数:画刷,椭圆的矩形,开始和扫角。下面的代码调用FillPie。
g.FillPie(new SolidBrush (Color.Red),
0.0F, 0.0F, 100, 60, 0.0F, 90.0F);
FillPolygon方法
FillPolygon用指定的画刷填充一个多边形。它需要三个参数:一个画刷、一个绘制点数组和一个填充模式。FillMode枚举定义路径内部的填充模式。它提供了两种填充模式:交替和环绕。默认模式是交替的。
在我们的应用中,我们将使用一个影线画刷。到目前为止,我们只看到了一把实心的刷子。实心笔刷是一种只有一种颜色的笔刷。HatchBrush类表示影线画刷,影线刷是一种带有影线风格和两种颜色的刷。
下面的代码使用FillPolygon用围绕模式填充一个多边形。
Graphics g = e.Graphics;
// Create a solid brush
SolidBrush greenBrush = new SolidBrush (Color.Green);
// Create points for polygon
PointF p1 = new PointF (40.0F, 50.0F);
PointF p2 = new PointF (60.0F, 70.0F);
PointF p3 = new PointF (80.0F, 34.0F);
PointF p4 = new PointF (120.0F, 180.0F);
PointF p5 = new PointF (200.0F, 150.0F);
PointF[] ptsArray =
{
p1, p2, p3, p4, p5
};
// Draw polygon
e.Graphics.FillPolygon (greenBrush, ptsArray);
// Dispose of objects
greenBrush.Dispose();
填充矩形
用画刷填充矩形。该方法以画刷和矩形作为参数。填充矩形使用画刷填充指定的一系列矩形,并使用画刷和矩形数组。这些方法也有额外的选项。例如,如果您使用的是HatchStyle画笔,您可以指定背景和前景颜色。
注意:HatchBrush类是在System.Drawing中定义的。Drawing2D命名空间。
下面代码使用fill矩形填充两个矩形。一个长方形充满了一个影线画刷,另一个用一个实心刷子。
private void Form1_Paint(object sender,
System.Windows.Forms.PaintEventArgs e)
{
// Create brushes
SolidBrush blueBrush = new SolidBrush(Color.Blue);
// Create a rectangle
Rectangle rect = new Rectangle(10, 20, 100, 50);
// Fill rectangle
e.Graphics.FillRectangle(new HatchBrush(HatchStyle.BackwardDiagonal, Color.Yellow,Color.Black), rect);
e.Graphics.FillRectangle(blueBrush, new Rectangle(150, 20, 50, 100));
// Dispose of object
blueBrush.Dispose();
}
FillRegion使用画刷填充指定区域。该方法以画刷和区域作为输入参数。
下面代码从矩形创建一个区域对象,并调用FillRegion来填充该区域。
Rectangle rect = new Rectangle (20, 20, 150, 100);
Region rgn = new Region(rect);
e.Graphics.FillRegion(new SolidBrush (Color.Green), rgn);
希望本文能够帮助您理解GDI+中的填充方法。
标签: #绘制填充矩形的方法为