C#生成树形图节点坐标

C#生成树形图节点坐标,c#,unity3d,tree,hierarchy,C#,Unity3d,Tree,Hierarchy,我试图使用c#在Unity3D中绘制树形图,我有一个包含以下变量的数据列表: public class ObjectData { public string ID; public string hierarchyParent; public int hierarchyLevel; } 父变量包含父对象的ID,级别变量包含行的升序数,即顶行=1,下行=2等。我需要获取此树形图中每个节点的二维空间中未知数量项的坐标。如果我试图通过设置行并添加一个恒定的x值来创建连接线,那么

我试图使用c#在Unity3D中绘制树形图,我有一个包含以下变量的数据列表:

public class ObjectData
{
    public string ID;
    public string hierarchyParent;
    public int hierarchyLevel;
}

父变量包含父对象的ID,级别变量包含行的升序数,即顶行=1,下行=2等。我需要获取此树形图中每个节点的二维空间中未知数量项的坐标。如果我试图通过设置行并添加一个恒定的x值来创建连接线,那么连接线通常会交叉且不居中。我看了一些其他的例子,但是没有找到一个关于我的输入数据的教程。谢谢

我能够使用Tewr的答案找到这篇博文:


这充分说明了如何解决我的问题

这不是一个很简单的问题。如果您的实际树木相对较小,则可能效果良好。你的问题不仅仅是一个算法。看看Reingold Tilford,它假设在少数情况下解决了您的需求“线经常交叉且不居中”(我假设您想要根层次结构),或者如果它不尝试“SpaceTree”算法,还有很多其他的算法取决于你想让你的树看起来如何,如果你还没有看过的话,也建议你去看看。它通常很容易实现,并且可以产生好看的结果。