gpt4 book ai didi

java - XYZ 旋转后计算对象 XYZ 方向

转载 作者:行者123 更新时间:2023-11-30 07:33:39 27 4
gpt4 key购买 nike

我在 XYZ 的 3D 空间中将对象旋转 90 度步长 (rX rY rZ)。角度限制为 0-360 度,我使用以下命令来旋转矩阵:

Matrix.rotateM(mModelMatrix, 0, rX, 1.0f, 0.0f, 0.0f);
Matrix.rotateM(mModelMatrix, 0, rY, 0.0f, 1.0f, 0.0f);
Matrix.rotateM(mModelMatrix, 0, rZ, 0.0f, 0.0f, 1.0f);

如果对象的 XYZ 在旋转之前为 (X+)、远离 (Y+) 和 (Z+);如何轻松计算任意旋转后的右、远、上?

除了rXrYrZ旋转变量之外,我没有其他信息。

最佳答案

当有一个矩阵时,将基 vector 与相同的矩阵相乘以获得变换后的 vector 可能是最有意义的。例如,如果您正在寻找一个从对象面向 (0,0,1) 且尊重其内部坐标系的 vector ,您将首先用该矩阵变换原点 (0,0,0) 以获得新的中心,然后变换目标 vector (0,0,1)具有相同的过程。结果就是target-origin。此过程适用于您需要的任何系统和任何组合,但您确实需要注意乘以什么矩阵,因为在大多数情况下不应包括投影。

针对您的具体情况的另一个有趣的解决方案可能是简单地查看矩阵基 vector 。矩阵左上角的 3x3 部分实际上代表 xyz 的 3 个轴。所以恒等式是 x=(1,0,0), y=(0,1,0), z=(0,0,1)。一旦旋转或缩放,这些值就会改变,并且可以直接从矩阵访问。

关于java - XYZ 旋转后计算对象 XYZ 方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35708916/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com