XMarksTheSpot 基类见:http://blog.csdn.net/u013384702/article/details/17883367
Code:(注意两种填充模式的区别)
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace CsStudy
{
class FillModesClassical : XMarksTheSpot
{
public new static void Main()
{
Application.Run(new FillModesClassical());
}
public FillModesClassical() {
Text = "五角星填充";
ClientSize = new Size(2*ClientSize.Height,ClientSize.Height);
}
protected override void DoPage(Graphics grph, System.Drawing.Color clr, int cx, int cy)
{
Brush brush = new SolidBrush(clr);
Point[] apt = new Point[5];
for (int i = 0; i < apt.Length; i++)
{
double dAngle = (i * 0.8 - 0.5) * Math.PI;
apt[i] = new Point((int)(cx*(0.25+0.24*Math.Cos(dAngle))),
(int)(cy * (0.50 + 0.48 * Math.Sin(dAngle))));
}
grph.FillPolygon(brush,apt,FillMode.Alternate);//交替填充
for (int i = 0; i < apt.Length; i++)
apt[i].X += cx / 2;
grph.FillPolygon(brush, apt, FillMode.Winding);//环绕填充
}
}
}
效果图: