1

我正在尝试画一棵树,但我找不到让“分支”不重叠的方法。我需要以前做过这件事的人来给出一个绝妙的主意。我尝试了一些不起作用的方法(或者我使用不当),所以我愿意接受任何建议。

这是我用来绘制树的代码:

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);

                    }
                }
            }

一切都正确绘制,除了重叠问题。

4

0 回答 0