我正在尝试使用three.js在webgl中制作一个魔方游戏(您可以尝试here)。
而且我在检测巫婆轴时遇到问题,必须根据立方体的旋转来旋转立方体。例如,如果多维数据集处于原始位置/旋转,则如果我想将左图层从下向上旋转,则必须在Y轴上旋转。但是我将立方体在Y轴上旋转90度,所以我必须在Z轴上旋转它,以使左图层从下向上旋转。

我正在尝试找到一种方法来根据立方体的方向获得正确的旋转轴。
目前,如果我想从下向上移动前一层,则检查立方体旋转矩阵轴的矢量与矢量(0,1,0)最平行。但是它在像这样的极端情况下不起作用:



我猜有一些简单的方法可以做到这一点,但是我在矩阵和数学方面还不够好:)

最佳答案

AxisHelper可以显示场景的轴,您可以使用这些轴确定方向。

var axishelper = new THREE.AxisHelper(40);
axishelper.position.y = 300;
scene.add(axishelper);

您还可以log您的多维数据集,并使用Chrome开发者工具或Firebug检查positionrotation属性。

09-27 17:10