3

背景
https://marketplace.gephi.org/plugin/force-atlas-3d/

問題
- 画面上の (x、y、z) 座標で表されるノードのネットワークがあります。
- マウス ポインタの位置は、画面上の (x,y) 座標で表されます (通常どおり)。

=> ノードのネットワークのビューを回転させるために、マウス (x と y の変化) からのドラッグ動作を使用したいと思います。

  • マウスを左にドラッグすると、ノードが垂直軸を中心に左に回転します (「回転」はここでは動作的に定義されていませんが、私の意味を視覚化していただければ幸いです)。

  • マウスを画面の下部にドラッグすると、ビューアーの方向に、水平軸を中心にノードが回転します。

私が見ているように、マウス座標のバリエーションを入力として受け取り、各ノードの座標の対応するバリエーションを返すメソッドが必要です。


- ここではカメラの動きはありません。
- ソリューションは Java で開発されています - Java3D のようないくつかのライブラリがここで関連している可能性がありますか?

どんな助けでも大歓迎です - そして私が構築している Gephi プラグインで認められました! どうも!

4

1 に答える 1

4

軌道動作クラスを使用してみる

OrbitBehavior orbit = new OrbitBehavior(canvas, OrbitBehavior.REVERSE_ROTATE);
orbit.setSchedulingBounds(new BoundingSphere());
universe.getViewingPlatform().setViewPlatformBehavior(orbit);

ビューを全方向に回転します。ただし、次のように Y 回転移動乗数を 0 に設定することで、(マウスの方向に応じて) 回転を左右の方向に制限できます。

orbit.setRotXFactor(2);//or any other value
orbit.setRotYFactor(0);
于 2013-11-10T10:01:36.470 に答える