gpt4 book ai didi

c++ - 如何在 "forward direction"中移动转换?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:31:37 28 4
gpt4 key购买 nike

我想向前移动我的 Transform,我直接将其用于我的对象。除了在特定轴(例如 z)上向前移动它之外,有没有一种方法可以让我在 Transform 所面对的方向上移动它?例如,默认情况下我会完美地沿着 Z 轴向下移动,但是,如果我在 Y 轴上旋转我的变换并想要“向前”移动,它就不会直接沿着 Z 轴向下移动,而是沿着我旋转的方向移动一点

我相信我需要计算前向 vector ,然而,这似乎是我能找到的全部。如果那是正确的,或者如何去做,我找不到任何东西。如何在具有 4x4 矩阵(主要行)的同时沿“正向”移动变换。

这不是我的游戏相机,而是我的游戏对象。为此,我只有我的变换矩阵,它是根据我的旋转矩阵、比例矩阵和位置构建的。

最佳答案

您可以从矩阵中提取第三列(或行,取决于乘法顺序),这将是向前的(或向后的,取决于“向下”的方向)。这将为您提供 z 轴的目标 vector 。

等效地,您可以乘以 vector new Vector4(0,0,1,0)(或 new Vector4(0,0,-1,0))与矩阵(或 vector 与矩阵)。请注意,第四个坐标是零而不是一,因为您不需要任何平移。这将为您提供 z 轴变换的方向。

这也适用于 3x3 旋转矩阵。在这种情况下,只需从上面的 vector 中删除最后一个坐标。

结果将是指向“前方”的 vector 。您可以将其添加到位置或平移矩阵/vector 中。

关于c++ - 如何在 "forward direction"中移动转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338470/

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