如何制作 Windows 形式的三角形对象?

How to make Triangle obect in Windows Form?

我想要 draw/make 一个三角形图形,它会在我 运行 程序之后立即出现,但我无法找出正确的命令。这是我用来制作矩形对象的命令。

private void Form1_Paint(object sender, PaintEventArgs e)
{ 
e.Graphics.FillRectangle(Brushes.Aquamarine, _x, _y, 100, 100); 
} 

所以当我制作对象时,我会让它自动移动。

我搜索了教程,但没有找到合适的内容。请帮忙。

DrawPolygon 可能满足您的要求,您只需指定三角形的三个顶点即可。

https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.drawpolygon?view=dotnet-plat-ext-6.0

编辑:FillPolygon可能更符合您的需要,抱歉。

https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.fillpolygon?view=dotnet-plat-ext-6.0

您可以使用FillPolygon并指定3个三角点。

e.Graphics.FillPolygon(Brushes.Aquamarine, new Point[] { new Point(150, 100), new Point(100, 200), new Point(200, 200) });

或者您可以创建一个 FillTriangle 扩展方法

public static class Extensions
{
    public static void FillTriangle(this Graphics g, PaintEventArgs e, Point p, int size)
    {
        e.Graphics.FillPolygon(Brushes.Aquamarine, new Point[] { p, new Point(p.X - size, p.Y + (int)(size * Math.Sqrt(3))), new Point(p.X + size, p.Y + (int)(size * Math.Sqrt(3))) });
    }
}

然后这样调用

e.Graphics.FillTriangle(e, new Point(150, 100), 500);

对于直角三角形使用这个

e.Graphics.FillPolygon(Brushes.Aquamarine, new Point[] { p, new Point(p.X, p.Y + size * 2), new Point(p.X + size, p.Y + size * 2) });

对于迟钝的这个

e.Graphics.FillPolygon(Brushes.Aquamarine, new Point[] { p, new Point(p.X - size, p.Y + height), new Point(p.X + size, p.Y + height) });

这段代码会输出这个

e.Graphics.FillRightTriangle(e, new Point(50, 20), 100);
e.Graphics.FillTriangle(e, new Point(400, 20), 70);
e.Graphics.FillObtuseTriangle(e, new Point(230, 200), 50, 130);