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