Csharp/C Sharp/2D Graphics/FillMode
Alternate
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
class FillModesOddity : Form {
public static void Main() {
Application.Run(new FillModesOddity());
}
public FillModesOddity() {
Text = "Alternate and Winding Fill Modes (An Oddity)";
ClientSize = new Size(2 * ClientSize.Height, ClientSize.Height);
ResizeRedraw = true;
}
protected override void OnPaint(PaintEventArgs pea) {
DoPage(pea.Graphics, ForeColor, ClientSize.Width, ClientSize.Height);
}
protected void DoPage(Graphics grfx, Color clr, int cx, int cy) {
Brush brush = new SolidBrush(clr);
PointF[] aptf = { new PointF(100.1f, 400.7f), new PointF(400.5f, 10.7f),
new PointF(200.5f, 300.1f), new PointF(300.9f, 20.1f),
new PointF(300.9f, 200.5f), new PointF(300.3f, 390.5f),
new PointF(400.3f, 0.9f), new PointF(200.7f, 200.9f),
new PointF(500.7f, 100.3f), new PointF(100.1f, 400.3f)};
grfx.FillPolygon(brush, aptf, FillMode.Alternate);
}
}
Winding
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
class FillModesOddity: Form
{
public static void Main()
{
Application.Run(new FillModesOddity());
}
public FillModesOddity()
{
Text = "Alternate and Winding Fill Modes (An Oddity)";
ClientSize = new Size(2 * ClientSize.Height, ClientSize.Height);
ResizeRedraw = true;
}
protected override void OnPaint(PaintEventArgs pea)
{
DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
}
protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
{
Brush brush = new SolidBrush(clr);
PointF[] aptf = { new PointF(100.1f, 400.7f), new PointF(400.5f, 10.7f),
new PointF(200.5f, 300.1f), new PointF(300.9f, 20.1f),
new PointF(300.9f, 200.5f), new PointF(300.3f, 390.5f),
new PointF(400.3f, 0.9f), new PointF(200.7f, 200.9f),
new PointF(500.7f, 100.3f), new PointF(100.1f, 400.3f)};
grfx.FillPolygon(brush, aptf, FillMode.Winding);
}
}