2013-07-04 76 views
3

背景
https://marketplace.gephi.org/plugin/force-atlas-3d/旋轉用鼠標移動的3D視圖 - 使用固定相機

問題
- 我在表示節點的網絡(X,Y,Z)座標上一個屏幕。
- 鼠標指針的位置在屏幕上用(x,y)座標表示(就像正常情況一樣)。

=>我想使用鼠標拖動動作(x和y的變化)來旋轉節點網絡的視圖。

  • 拖動鼠標到左邊會導致繞垂直軸的節點的轉動,向左(「旋轉」沒有操作性這裏定義我知道,但我希望你能想象我的意思)。

  • 將鼠標拖到屏幕底部會導致節點圍繞水平軸旋轉,朝觀察者方向旋轉。

正如我所看到的,我需要一種方法將鼠標座標變化作爲輸入,併爲每個節點返回座標的相應變化。

備註
- 這裏沒有攝像機移動。
- 解決方案是用Java開發的 - 也許像Java3D這樣的一些庫在這裏相關?

任何幫助將不勝感激 - 並承認我正在建設的Gephi插件!謝謝!

回答

3

嘗試使用orbit behavior

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);