2017-04-21 30 views
1

我有一個java3d場景,包含一個3D CAD繪圖和以0,0,0爲中心的各種附加形狀。我正在使用OrbitBehaviour讓用戶圍繞它移動。編程式旋轉java3d場景(使用OrbitBehaviour?)

我想要有一個按鈕,可以圍繞一個軸旋轉一個固定的數量(比如說10度,但顯然是弧度)的場景。我已經有了一個「home」按鈕,可以使用lookAt返回到初始查看點。

與我所做的其他工作相比,聽起來很簡單,但無論我嘗試什麼方法,都無法使其工作。

我在想我應該問OrbitBehaviour它的getViewPlatformTransform()並移動到0,0,0 - >旋轉它 - >以某種方式回到原來的位置?

+0

爲了澄清,我希望場景像用戶拖動鼠標一樣移動,以便圍繞一個軸旋轉一點。 – UnixNerd

回答

2

最簡單的方法是將所有對象放在TransformGroup中並將旋轉矩陣應用到它。

TransformGroup tg = new TransformGroup(); 
Transform3D transform = new Transform3D(); 
/// add objects to transform group 
tg.setTransform(transform); 

如果您想要在運行時更改transfrom,您還必須向該轉換組添加適當的提示。

+0

謝謝,我曾嘗試過,但因爲我編譯初始場景後遇到問題,因此需要添加和刪除標籤。這一次管理解決它,當然你的答案工作:-) – UnixNerd

+0

據我記得,對象可以動態地添加到場景(即通過轉換組),但你需要適當的提示,這不會拋出一個運行時異常。 – Dariusz

+0

我認爲在編譯初始場景後只能添加BranchGroups。所以其他對象必須包裝在一個下面。 – UnixNerd