五角星主要需要计算外围5点的坐标和内部5点的坐标
其主要计算公式如下:
主要GDI绘图代码如下:
void draw5()
{
double dct = Math.PI / 5.0;//36
int i = 0;
double ct2 = 3 * Math.PI / 5.0 - ct1;//36-ct1+72
int r = (int)Math.Round(R * Math.Cos(4 * Math.PI / 10.0) / Math.Cos(2 * Math.PI / 10.0));
var g = pictureBox1.CreateGraphics();
Pen pen = new Pen(Color.Yellow);
var bursh = new SolidBrush(Color.Yellow);
Point[] points = new Point[10];
for (i = 0; i < 9; i += 2)//0,2,4,6,8
{
points[i].X = (int)Math.Round(pt0.X + R * Math.Cos(ct1 + i * dct));
points[i].Y = (int)Math.Round(pt0.Y - R * Math.Sin(ct1 + i * dct));
}
for (i = 1; i < 10; i += 2)
{
points[i].X = (int)Math.Round(pt0.X + r * Math.Cos(ct1 + i * dct));
points[i].Y = (int)Math.Round(pt0.Y - r * Math.Sin(ct1 + i * dct));
}
g.FillPolygon(bursh, points);
}
简单的绘图结果