微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 3 个向量的 3D 立方体旋转

如何解决来自 3 个向量的 3D 立方体旋转

我目前正在处理我无法控制的文件,这些文件定义了 5 个向量的 3D 立方体,一个用于中心位置,一个用于半尺寸,以及 3 个以某种方式构成旋转的向量。我正在努力弄清楚如何将这 3 个向量变成 3 个角度,以便我可以在渲染引擎中轻松使用。

例如,我可能有以下向量:

Position
X: -655.48,Y: 477.02,Z: -3.30

Size
X: 435.57,Y: 29.79,Z: 138.53

Rotation
X: 0.91,Y: -0.41,Z: 0.00
X: 0.41,Y:  0.91,Z: 0.00
X: 0.00,Y:  0.00,Z: 1.00

根据位置和大小(乘以 2),我可以轻松创建一个立方体,但缺少旋转。因为我知道盒子应该是什么样子,所以我知道立方体的旋转角度应该是 0°、0° 和大约 -24°、156° 或 336°,这取决于你如何旋转它.不幸的是,我不知道如何将一个变成另一个

弄清楚要搜索什么来解决这个问题一直很有挑战性,因为我不知道我在看什么。我假设我必须以某种组合方式获取这些值并计算每个轴的角度,可能使用 atan2?但我在这里超出了我的深度。

再举一个例子,这是一个不旋转的立方体。

X: 1.00,Y: 0.00,Y: 1.00,Z: 1.00

如果有任何帮助,我将不胜感激。

更新:我意识到我对预期角度的解释很糟糕,所以这里有一个快速附录。

角度,我的意思是 3 度角,用于围绕 X、Y 和 Z 的旋转。我目前正在 Unity 引擎中对此进行测试,在那里我可以轻松地创建一个围绕中心点具有给定大小的框,我的具体例子是关于一个这样的盒子,它需要角度 X: 0°、Y: 0° 和 Z: -24°,才能像我知道它应该出现的那样出现。这些值来自我试图简单地将立方体放入我需要的旋转中。

根据我目前的理解,这些旋转值实际代表的是所有 3 个轴上的方向,它们描述了立方体的 8 个边缘点所在的方向。从技术上讲,您可以创建不是立方体的东西,因为这格式允许倾斜的边,但它从未在我正在处理的文件中以这种方式使用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。