【问题标题】:How do I draw a line between all the drawn points?如何在所有绘制点之间画一条线?
【发布时间】:2015-07-27 03:25:39
【问题描述】:

在我做过的绘画活动中:

List<Point> drawPoints = GetDrawPoints();

if (drawPoints.Count > 1)
{
    foreach (Point p in drawPoints)
    {
        e.Graphics.DrawLine(pen, p.X - 2, p.Y - 2, 4, 4);
    }
}

但不是在后续点之间画线,而是从同一个地方到每个点画两条线。

我想用一条线连接所有点。

【问题讨论】:

  • 您是否考虑过尝试参考上一点?
  • 看看DrawLines()DrawPolygon()
  • 右找到这个:e.Graphics.DrawLines(Pens.Black, drawPoints.ToArray());工作正常。

标签: c# .net winforms


【解决方案1】:

使用DrawLines 并将列表作为数组传递:

if (drawPoints.Count > 1)
{
    e.Graphics.DrawLines(pen, drawPoints.ToArray());
}

【讨论】:

    【解决方案2】:

    您以某种方式回答了自己的问题。要画一条线,您至少需要两点。但是您不断在相同位置之间绘制新闻线。 (您的变量点和位于 (4;4) 中的点)。您需要不断更新 foreach 中的两个点并正确打印它们。

    更好的是,使用DrawLines 函数,并提供您的积分列表。类似于:

     e.Graphics.DrawLines(pen, drawPoints.ToArray());
    

    【讨论】:

      猜你喜欢
      • 2018-12-19
      • 2014-12-23
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 2014-03-20
      • 1970-01-01
      相关资源
      最近更新 更多