我想使用three.js在webgl中製作一個rubik多維數據集遊戲(你可以試試here)。 我有問題要檢測女巫軸,我必須根據立方體的旋轉來旋轉我的立方體。例如,如果立方體處於原始位置/旋轉,如果我想從左到右旋轉左層,我必須在Y軸上旋轉。但是我在Y軸上旋轉了90度的立方體,我不得不在Z軸上旋轉它以將我的左層從下往上旋轉。如何找到魔方的方向?
我試圖找到一種方法來根據立方體的方向獲得正確的旋轉軸。 現在我檢查魔方向量的立方體的旋轉矩陣是最平行的向量(0,1,0),如果我想從一個前面層向下移動。但它不工作在邊緣情況是這樣,例如:
我想有一些簡單的方法來做到這一點,但我不是在基質和數學的東西:)
如果您標記軸_x_,_y_,_z_並編輯您的問題以使用這些代替「左」,「下」等,這將有所幫助。另外,對於旋轉,使用「CW」和「CCW」 「,假定繪製的軸線是正方向的。就目前而言,你的描述很模糊。 –
當您拖動鼠標時,您可能需要考慮的一件事就是使用類似「TrackballControls」的東西。 (或者編寫你自己的版本。)這樣,移動的是_camera_,並且立方體本身保持與全局座標軸平行。這樣,旋轉更簡單。此外,設置背景爲黑色看起來更好,恕我直言。 :-) – WestLangley
您可以像@WestLangley所說的那樣控制攝像頭,或者您可以將您的單個rubik片段添加到父對象3D,然後使用您的控件。這樣,當你將變化應用到各個部分時,它將在父對象3D中本地化,所以它們應該始終具有其默認(易於使用)的方向......至少我認爲是這樣,這是我已經完成的與[this](http://0xor1.com/Sudoku)。 – 0xor1