在绘制的点之间绘制一条线

Posted

技术标签:

【中文标题】在绘制的点之间绘制一条线【英文标题】: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 谢谢兄弟^^ 【参考方案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();然后将它添加到列表中> 谢谢兄弟

以上是关于在绘制的点之间绘制一条线的主要内容,如果未能解决你的问题,请参考以下文章

使用 SceneKit 在两点之间绘制一条线

如何使用线性感知器中的权重向量绘制一条线? [关闭]

Matplotlib:在两点之间绘制一条线......但以一种不寻常的方式

如何在python中绘制一条线,每个数据点都有一个间隔

根据用户输入绘制一条线

在 QWidget 上动态绘制一条线