2

3-D データ構造表示の解決策がありません。アドバイスをお願いします。

nノードにはk子があります。子は、k球電子電荷アルゴリズムによって、ノードの境界球全体に分散されます。技術的に正確ではありませんが、子はノードの境界球全体に「均等に分散」されていると言うのが最も簡単です。

現在、ノードを球体で表現しています。ただし、大きなnの場合、球体の描画が複雑になるため、動的に表示するには計算効率が低下します。

ソリューションには、 と のすべての選択肢について、理解可能で視覚的に規則的な表現が必要です。n視覚k_i的に規則的な意味は、1 つの線が 2 つの節点の 2 つの面に垂直である場合、すべての線が 2 つの面のいずれかの選択に垂直であることを意味します。 2 つのノードなど。

ここにはいくつかのオプションがあります。

  1. より少ない面を使用して球を表す球描画アルゴリズムを使用します。

    • これは見栄えが悪く、「球体」から伸びる線は図から平らに出ません (「球体」A から「球体」B への線は、A または B の入口面に対して垂直であるとは限りません。両方。)
  2. 多面体の面の数が子の数と等しくなるように、球の代わりに凸正多面体を使用します。これにより、多面体 A と多面体 B の両方に対して垂直に線を引くことができます。

    • これは数学的に不可能です。さまざまな面を持つこのような図形は 5 つしかないためです。ただし、この構造には、k点をマッピングするのに十分な面が必要です。頂点にマッピングしようとすると、引数は同様に保持されます。
  3. 使用する ????多面体ですが、頂点から頂点に線を引きます。
    • 私が知る限り、私が描いている線はとにかくこれらの多面体の輪郭を描いているので、これは常にうまくいくと思います。しかし、私はこれらの多面体を描画するための効率的なアルゴリズムを知りませんし、これを自分で調べるための名前も知りません。
  4. コミュニティからの提案があれば教えてください。

ディスプレイの構造を説明するための画像を添付しました。これは、30 個の子を持つルート ノードを持つ構造です。ルート ノードの子には子がありません。

構造

3 で説明した多面体の例を示すために、ノードが描かれていない 2 番目の図を添付しました。

多面体

4

1 に答える 1

0

球体を正方形に置き換え、アドホック シェーダーを使用して球体の外観を与えます。線が球の表面から飛び出しているように表示するには、次のようにします。始点と終点を球の表面に設定します (座標の計算は単純な計算です)。

于 2014-11-11T12:05:38.190 に答える