【问题标题】:implementing a polygon in windows forms, c# , visual studio 2019 [closed]在 Windows 窗体中实现多边形,c#,visual studio 2019 [关闭]
【发布时间】:2021-05-11 22:22:23
【问题描述】:

我想在 windows 窗体的矩形内创建一个多边形:

这适用于矩形:(位置和尺寸是预定义的点)

System.Drawing.Rectangle rect = new System.Drawing.Rectangle(Position, Dimension);            
Pen pen = new Pen(Color);    
pen.Width = 5;
pGraphics.DrawRectangle(pen, rect);
pGraphics.FillRectangle(new SolidBrush(ColorFilling), rect);

此代码在矩形内用选定的颜色绘制一个矩形。

我想做同样的事情,但是用矩形的预定义位置和尺寸绘制一个多边形,所以多边形应该在“不可见”矩形内。

问题

我如何计算他的所有分数?


编辑:例如,我想在矩形内绘制一个梯形

【问题讨论】:

  • 你已经做到了 - 矩形就是多边形。除非您告诉我们更多信息,否则考虑到可以容纳在边界内的边数和顶点数,可能还有无数其他多边形。
  • 矩形是一个多边形,所以你已经有了一个不会超出矩形的多边形。您是否想要一个特定的不同多边形,例如具有指定边数和最大尺寸的正多边形(不离开边界框,也就是我们所说的定义这样限制的矩形)?
  • 一种相对简单的方法是:创建一个具有您想要的形状、任何位置和大小的多边形。找到它的边界框。计算将多边形的边界框映射到约束矩形的变换矩阵。应用矩阵变换所有多边形点,形成一个新的多边形,经过平移和缩放,适合矩形。
  • 是的,确切地说,我想在矩形内画一个梯形
  • 如果你想画一个梯形,例如在一个边界矩形内,你仍然必须定义它的顶点。你有什么问题?

标签: c# winforms polygon


【解决方案1】:

您可以使用矩形的位置在矩形中定义多边形。

这是Microsoft C# Graphics.DrawPolygon的内联链接

有关绘制多边形的更多信息。对于您的问题,可能存在无限可能,因此如果您没有要制作的特定多边形,很难告诉您解决方案..

private void Draw(PaintEventArgs e)
{
    // Position of the rectangle
    var recPosition = (100, 100);

    // Draw of the rectangle
    Pen blackPen = new Pen(Color.Black, 3);
    SolidBrush blueBrush = new SolidBrush(Color.Blue);
    RectangleF rect = new RectangleF(0.0F, 0.0F, 200.0F, 200.0F);
    e.Graphics.FillRectangle(blueBrush, rect);

    // Create points that define polygon.
    PointF point1 = new PointF(0, RecPosition.Item2);
    PointF point2 = new PointF(RecPosition.Item1/2, RecPosition.Item2*2);
    PointF point3 = new PointF(RecPosition.Item1*2, RecPosition.Item2/2);
    PointF point4 = new PointF(RecPosition.Item2, 0);
    PointF[] curvePoints =
                 {
                    point1, point2, point3, point4,
                 };

    // Draw polygon curve to screen.
    e.Graphics.DrawPolygon(blackPen, curvePoints);
}

【讨论】:

  • 非常感谢!
猜你喜欢
  • 2021-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 2018-05-15
相关资源
最近更新 更多