three.js を使用して webgl でルービック キューブ ゲームを作成しようとしています (ここで試すことができます)。そして、キューブの回転に応じてキューブを回転させる必要がある魔女の軸を検出するのに問題があります。たとえば、立方体が元の位置/回転にある場合、左のレイヤーを下から上に回転させたい場合は、Y 軸で回転させる必要があります。ただし、立方体を Y 軸で 90 度回転させます。左のレイヤーを下から上に回転させるには、Z 軸で回転させる必要があります。
立方体の向きに応じて正しい回転軸を取得する方法を見つけようとしています。今のところ、フロントレイヤーを下から上に移動したい場合、立方体の回転行列の軸の魔女ベクトルがベクトル(0,1,0)と最も平行であることを確認します。ただし、たとえば次のようなエッジケースでは機能しません。
それを行う簡単な方法があると思いますが、私は行列や数学的なことには十分ではありません:)