如何通过线路连接两个点



如何实现将两个矩形连接在一起的线?目前,我有:

if (listBox1.Items.Count >= 2)
{
    e.Graphics.DrawLine(Pens.AliceBlue, new Point(/*??*/), new Point(n._x, n._y));                    
}

第二个新点是我放置了新矩形的地方,但我不确定如何事先获得矩形的点。

我的矩形X和y存储在这样的列表中:

public BindingList<Node> nodeList = new BindingList<Node>();

我的主要目标是在我的每个矩形上都添加一条线。

例如:将一个矩形向下放置,什么也没发生,将另一个矩形放在下面,添加一条连接两者的线,添加第三个,添加一条线,将第二和第三个连接在一起。但是,如果我能得到一个,我可以尝试弄清楚如何不断添加这些行。

感谢您的任何帮助!

如果您有矩形列表,则可以用这样的线绘制它们:

void drawRectangles(Graphics g, List<Rectangle> list) {
    if (list.Count == 0) {
        return;
    }
    Rectangle lastRect = list[0];
    g.DrawRectangle(Pens.Black, lastRect);
    // Indexing from the second rectangle -- the first one is already drawn!
    for (int i = 1; i < list.Count; i++) {
        Rectangle newRect = list[i];
        g.DrawLine(Pens.AliceBlue, new Point(lastRect.Right, lastRect.Bottom), new Point(newRect.Left, newRect.Top));
        g.DrawRectangle(Pens.Black, newRect);
        lastRect = newRect;
    }
}

您可以插入一些智能代码以决定要连接哪个角落,但这取决于您。

仅适用于可能需要此代码示例的其他任何人。for循环应从0开始。

for (int i = 1; i < list.Count; i++)
   {
       //Code here
   }

应该是:

for (int i = **0**; i < list.Count; i++)
   {
       //Code here
   }

相关内容

  • 没有找到相关文章

最新更新