我正在尝试绘制一棵树,但我找不到方法以便“分支”不重叠。我需要以前做过这件事的somone才能给出一个绝妙的主意。我尝试了一些不起作用的方法(或者我使用它们很差),所以我愿意接受任何建议。
这是我用来绘制树的代码:
public void drawNode(Graphics g, Node node, float x, float y)
{
Font sFont = new Font("Helvetica",13);
if (node.Left == null && node.Right == null)
{
g.DrawLine(Pens.Black, x, y, x, y + 20);
g.DrawString(node.litera.ToString(), sFont, Brushes.Blue, x, y + 25);
}
else
{
if (node.Left != null)
{
g.DrawLine(Pens.Black, x, y, x - 20, y + 20);
drawNode(g, node.Left, x - 20, y + 20);
}
if (node.Right != null)
{
g.DrawLine(Pens.Black, x, y, x + 20, y + 20);
drawNode(g, node.Right, x + 20, y + 20);
}
}
}
除重叠问题外,一切都正确绘制。