5

グラフ レイアウトの描画を行う必要があり、ここで実装され、ここで説明されている Spring レイアウト アルゴリズムのようなものを使用することを検討しています。

ただし、私のノードにはすべて幅と高さがあります (エンティティ図です)。これを方程式に組み込む方法を誰か説明できますか?

4

2 に答える 2

0

Graph JavaScript フレームワークを出発点として、次のことを行うことができます。Nodeクラスが属性によって拡張されていると仮定しますwidthおよびheight. 次に、関数layoutRepulsiveで、ノードの距離を計算するための式を、それらのサイズを考慮して変更する必要があります。

var dx = Math.max(0, Math.abs(node2.layoutPosX - node1.layoutPosX) - 0.5*(node2.width+node1.width));
var dy = Math.max(0, Math.abs(node2.layoutPosY - node1.layoutPosY) - 0.5*(node2.height+node1.height));

maximum 関数は、バウンディング ボックスが重なっている場合でも、距離の可能な最小値として 0 を適用します。

于 2013-06-28T06:16:38.977 に答える