如何制作 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
可能满足您的要求,您只需指定三角形的三个顶点即可。
编辑:FillPolygon
可能更符合您的需要,抱歉。
您可以使用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);
我想要 draw/make 一个三角形图形,它会在我 运行 程序之后立即出现,但我无法找出正确的命令。这是我用来制作矩形对象的命令。
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Aquamarine, _x, _y, 100, 100);
}
所以当我制作对象时,我会让它自动移动。
我搜索了教程,但没有找到合适的内容。请帮忙。
DrawPolygon
可能满足您的要求,您只需指定三角形的三个顶点即可。
编辑:FillPolygon
可能更符合您的需要,抱歉。
您可以使用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);