2

我没有 3-D 数据结构显示的解决方案,希望得到一些建议。

每个n节点都有k孩子。孩子通过k球体电子电荷算法分布在节点的边界球上。虽然在技术上并不准确,但最简单的说法是,孩子在节点的边界范围内“均匀分布”。

目前,我用球体表示节点。然而对于 large n,由于绘制球体的复杂性,动态显示的计算效率很低。

对于 和 的所有选择,解决方案必须具有可理解且视觉上规则的表示nk_i视觉上规则的意思是,如果一条线垂直于两个节点的两个面,则所有线都垂直于某个选择的两个面的某个选择两个节点,等等。

我在这里有几个选择:

  1. 使用使用较少面来表示球体的球体绘制算法。

    • 这看起来很难看,从“球体”延伸的线不会齐平地退出图形(从“球体”A到“球体”B的线不能保证垂直于A或B的入口面,更不用说两个都。)
  2. 使用凸正多面体代替球体,这样多面体的面数等于子面数。这将允许绘制垂直于多面体 A 和多面体 B 的线。

    • 这在数学上是不可能的,因为只有 5 个这样的图形具有不变的多面,但这种结构要求有足够的面来映射k点。如果我们尝试映射到顶点,该论点同样成立。
  3. 利用 ????多面体,但从顶点到顶点画线。
    • 我相信这总是可行的,因为据我所知,我画的线条无论如何都勾勒出这些多面体。但是,我不知道绘制这些多面体的有效算法,而且我不知道它们的名称来自己查找。
  4. 社区可能对我有任何建议。

我附上了一张图片来说明我的显示器的结构。这是一个具有根节点的结构,有 30 个子节点。根节点的子节点没有子节点。

结构

我附上了第二张没有绘制节点的图片,以显示 3 中描述的多面体的示例,如果我的意思还不是很明显的话。

多面体

4

1 回答 1

0

用正方形替换球体,并使用特殊着色器为它们赋予球体的外观。要显示线条,就好像它们从球体表面弹出一样,只需这样做:将起点和终点设置为球体表面(计算坐标是简单的数学运算)。

于 2014-11-11T12:05:38.190 回答