【问题标题】:Drawing a line between the drawn points在绘制的点之间绘制一条线
【发布时间】:2018-12-19 17:28:57
【问题描述】:

我根据一些特征在图像上画了一些点,然后我想用一条线将这些点连接在一起

        List<Point> LinePoints = new List<Point>();
        LinePoints.Add(p1);
        LinePoints.Add(p2);
        LinePoints.Add(p3);

在绘画事件中:

            Pen p = new Pen(Color.Blue);
            if (LinePoints.Count > 1)
            {
                e.Graphics.DrawLines(p, LinePoints.ToArray());
            }

第一次在点之间画线,但在下一次迭代中
我将在列表中添加一些其他点LinePoints
在这种情况下,旧的绘制线被移除并绘制下一条
但我不想删除旧行。

如何在添加到列表LinePoints的所有新点之间画线而不删除旧线?

【问题讨论】:

  • 您的目标是什么:Winforms、WPF、ASP..?您应该始终正确标记您的问题,以便人们可以在问题页面上看到它! - _t 在下一次迭代中,我将在列表中添加一些其他点 _ 显示该代码!它是否还包括 List&lt;Point&gt; LinePoints = new List&lt;Point&gt;(); ?您可能希望更改为 List>,至少在您的点未全部连接的情况下。请参阅here for an example
  • @TaW 谢谢兄弟^^

标签: c# winforms image-processing


【解决方案1】:

像这样创建点列表:

List<Point> LinePoints = new List<Point>();
List<List<Point>> LinePointsSet = new List<List<Point>>();

然后添加点集:

LinePoints.Clear();
LinePoints.Add(p1);
LinePoints.Add(p2);
LinePoints.Add(p3);
LinePointsSet.Add(LinePoints.ToList());

Paint 事件循环中遍历所有列表:

foreach (var points in LinePointsSet)
{
    if (points.Count > 1) e.Graphics.DrawLines(Pens.Blue, points.ToArray());
}

【讨论】:

  • 谢谢我每次创建一个新列表 LinePoints=new List();然后将它添加到列表中> 谢谢兄弟
猜你喜欢
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多