4

我正在尝试使用 three.js 在 webgl 中制作一个魔方游戏(你可以在这里尝试)。而且我在女巫轴上检测到问题我必须根据立方体的旋转来旋转我的立方体。例如,如果立方体处于原始位置/旋转,如果我想从下到上旋转左层,我必须在 Y 轴上进行旋转。但是我在 Y 轴上旋转了我的立方体 90 度,我将不得不在 Z 轴上旋转它以从下到上旋转我的左层。

我试图找到一种方法来根据立方体的方向获得正确的旋转轴。目前,如果我想将前层从下向上移动,我检查立方体旋转矩阵轴的女巫向量与向量(0,1,0)最平行。但它不适用于像这样的边缘情况,例如:

立方体方向

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

4

2 回答 2

0

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

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

您还可以使用 Chrome 开发人员工具或 Firebug 来log检查您的立方体并检查positionrotation属性。

于 2013-11-09T23:52:57.473 回答
0

您可以将每个立方体的方向存储在其自己的 4x4 矩阵(即“模型”矩阵)中,该矩阵告诉您如何从立方体的本地坐标到世界坐标。现在,由于您想将立方体旋转到世界坐标中的轴(即矢量),您需要将轴转换为立方体坐标。这正是模型矩阵的产生的结果。

于 2017-08-14T03:42:19.187 回答