0

所以!

我想知道您是否可以帮助我解决一个问题:

我有一个立方体,可以在三个轴上旋转。我可以获得有关立方体旋转的信息,它是从 0 到 2PI 的三个角度的数组。

问题是:如何从这三个欧拉角中识别立方体的哪一侧在底部?

我认为完美的功能应该是这样的:

function getSideFromAngles(x,y,z) {
   // magic goes here
   // for example getSideFromAngles(Math.PI/2, 0, 0)
   // if x===PI/2 and y===0 and z===0 then return "front"
   // which means front side of cube "looks" down now.
}

以防万一——Three.js 还允许我获得立方体的四元数。

提前感谢您的帮助

4

1 回答 1

0

首先,在你的脸上你应该有法线,它给你面部的基本方向。

此外,在您的网格中,您应该有 matrixWorld,它应该给出旋转的全局结果(所有这些结果)。

现在,如果您将该矩阵乘以法线,您将拥有世界空间中的法线。

现在,创建一个指向下方的向量 (0, 0, -1),并计算它与世界空间法线之间的点积。具有最高价值的脸是指向更“向下”的脸

于 2014-08-05T17:22:03.657 回答