在绘制的点之间绘制一条线
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<Point> LinePoints = new List<Point>();
?您可能希望更改为 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以上是关于在绘制的点之间绘制一条线的主要内容,如果未能解决你的问题,请参考以下文章