1.使用System.Drawing绘制一个正方形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
    public MyForm()
    {
        // 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  
        this.DoubleBuffered = true;
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        // 创建一个Pen对象,用于绘制正方形  
        using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  
        {
            // 设置正方形的位置和大小  
            // 在这个例子中,我们从(50, 50)开始,大小为100x100  
            Rectangle rect = new Rectangle(50, 50, 100, 100);
            // 使用Graphics对象的DrawRectangle方法来绘制正方形  
            e.Graphics.DrawRectangle(pen, rect);
        }
    }
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MyForm());
    }
} 
 
2. 使用System.Drawing绘制一个长方形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
    public MyForm()
    {
        // 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  
        this.DoubleBuffered = true;
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        // 创建一个Pen对象,用于绘制长方形  
        using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  
        {
            // 设置长方形的位置和大小  
            // 在这个例子中,我们从(50, 50)开始,宽度为200,高度为100  
            Rectangle rect = new Rectangle(50, 50, 200, 100);
            // 使用Graphics对象的DrawRectangle方法来绘制长方形  
            e.Graphics.DrawRectangle(pen, rect);
        }
    }
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MyForm());
    }
}
3.使用System.Drawing绘制一个圆形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
    public MyForm()
    {
        // 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  
        this.DoubleBuffered = true;
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        // 创建一个Pen对象,用于绘制圆形的边框  
        using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  
        {
            // 创建一个Brush对象,用于填充圆形(如果需要的话)  
            using (Brush brush = new SolidBrush(Color.LightBlue)) // 你可以更改填充颜色  
            {
                // 设置圆形的位置和大小  
                // 在这个例子中,圆心在(100, 100),半径为50  
                int centerX = 100;
                int centerY = 100;
                int radius = 50;
                // 绘制圆形的边框(使用DrawEllipse方法)  
                e.Graphics.DrawEllipse(pen, centerX - radius, centerY - radius, 2 * radius, 2 * radius);
                // 如果你想要填充圆形,可以使用FillEllipse方法  
                // e.Graphics.FillEllipse(brush, centerX - radius, centerY - radius, 2 * radius, 2 * radius);  
            }
        }
    }
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MyForm());
    }
} 
 
4.使用System.Drawing绘制一个三角形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
    public MyForm()
    {
        // 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  
        this.DoubleBuffered = true;
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        // 创建一个Pen对象,用于绘制三角形的边  
        using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  
        {
            // 设置三角形的三个顶点  
            Point point1 = new Point(50, 50);
            Point point2 = new Point(150, 50);
            Point point3 = new Point(100, 150);
            // 绘制三条线以构成三角形  
            e.Graphics.DrawLine(pen, point1, point2);
            e.Graphics.DrawLine(pen, point2, point3);
            e.Graphics.DrawLine(pen, point3, point1);
        }
    }
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MyForm());
    }
} 
 
5.使用System.Drawing绘制一个五角星
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
    public MyForm()
    {
        // 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  
        this.DoubleBuffered = true;
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        // 创建一个Pen对象,用于绘制五角星  
        using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  
        {
            // 设定五角星的中心点  
            int centerX = 100;
            int centerY = 100;
            // 设定五角星的外接圆半径  
            int radius = 50;
            // 设定五角星的旋转角度(如果需要)  
            double rotateAngle = Math.PI / 2; // 从上顶点开始  
            // 计算五角星的五个顶点  
            PointF[] starPoints = CalculateStarPoints(centerX, centerY, radius, 5, rotateAngle);
            // 绘制五角星  
            for (int i = 0; i < starPoints.Length; i++)
            {
                int nextIndex = (i + 1) % starPoints.Length;
                e.Graphics.DrawLine(pen, starPoints[i], starPoints[nextIndex]);
            }
        }
    }
    // 计算五角星的顶点  
    private PointF[] CalculateStarPoints(float centerX, float centerY, float radius, int spikes, double rotation)
    {
        PointF[] result = new PointF[spikes];
        double outerRadius = radius; // 外接圆半径  
        double innerRadius = radius * 0.5f * Math.Sqrt(3); // 内接圆半径(五角星的特殊值)  
        double angle = Math.PI / 2 * 3 - spikes * Math.PI / spikes; // 第一个顶点的角度  
        for (int i = 0; i < spikes; i++)
        {
            result[i].X = (float)(centerX + Math.Cos(angle + rotation) * outerRadius);
            if (i % 2 == 0)
            {
                result[i].Y = (float)(centerY + Math.Sin(angle + rotation) * outerRadius);
            }
            else
            {
                result[i].Y = (float)(centerY + Math.Sin(angle + rotation) * innerRadius);
            }
            angle += Math.PI / spikes;
        }
        return result;
    }
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MyForm());
    }
} 
 
6.使用System.Drawing绘制一个圆外切三角形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
    public MyForm()
    {
        // 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  
        this.DoubleBuffered = true;
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        // 定义三角形的边长  
        int sideLength = 100;
        // 计算外接圆的半径  
        double radius = sideLength / (2 * Math.Sqrt(3));
        // 设定外接圆的中心点和三角形的中心点  
        int centerX = this.ClientSize.Width / 2;
        int centerY = this.ClientSize.Height / 2;
        // 计算三角形的顶点  
        PointF[] trianglePoints = CalculateEquilateralTrianglePoints(centerX, centerY, sideLength);
        // 绘制外接圆  
        using (Pen circlePen = new Pen(Color.Blue, 2))
        {
            e.Graphics.DrawEllipse(circlePen, centerX - (int)radius, centerY - (int)radius, (int)(radius * 2), (int)(radius * 2));
        }
        // 绘制三角形  
        using (Pen trianglePen = new Pen(Color.Black, 2))
        {
            e.Graphics.DrawLines(trianglePen, trianglePoints);
        }
    }
    // 计算等边三角形的三个顶点  
    private PointF[] CalculateEquilateralTrianglePoints(int centerX, int centerY, int sideLength)
    {
        PointF[] points = new PointF[3];
        double angle = Math.PI / 3; // 等边三角形内角的一半  
        // 第一个顶点(上方)  
        points[0] = new PointF(centerX, centerY - sideLength / 2);
        // 第二个顶点(右侧)  
        points[1] = new PointF(
            (float)(centerX + sideLength / 2 * Math.Cos(angle)),
            (float)(centerY + sideLength / 2 * Math.Sin(angle))
        );
        // 第三个顶点(左侧)  
        points[2] = new PointF(
            (float)(centerX + sideLength / 2 * Math.Cos(-angle)),
            (float)(centerY + sideLength / 2 * Math.Sin(-angle))
        );
        return points;
    }
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MyForm());
    }
}
7.使用System.Drawing绘制一个圆内接三角形



















