FillClosedCurve方法用于填充封闭曲线的内部。
FillMode枚举指定了填充封闭路径的内部的方式。一共有两种填充模式,即交替模式(Alternate)或环绕模式(Winding)。默认模式是Alternate.只有在曲线与自身相交的情况下,才需要使用填充模式。
程序运行效果见图一。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace FillClosedCurve
{
public
partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
// 创建一个点的数组
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[] ptsArrar = { pt1, pt2, pt3, pt4, pt5 };
// 填充封闭曲线
float tension = 1.0F;
// 设置填充模式交替模式
FillMode flMode = FillMode.Alternate;
SolidBrush blueBrush = new SolidBrush(Color.Blue);
// 绘制填充曲线
e.Graphics.FillClosedCurve(blueBrush, ptsArrar, flMode,
tension);
// 释放对象
blueBrush.Dispose();
}
}
}
图一:
这个例子与前一个不同,它使用了Form的paint方法创建Graphics对象:
e.Graphics.FillClosedCurve(blueBrush, ptsArrar,
flMode, tension);