math - 从欧拉位置和旋转计算前向和向上矢量?

标签 math rotation game-engine euler-angles

我在 3D 空间中有一个对象,我只有一个欧拉位置和旋转。我如何根据现有信息计算前向和向上矢量?

我知道我可以这样计算前向向量:

Vector3 forward = (target.getPosition() - object.getPosition()).normalize();

.. 其中目标是对象正在观察的轴上的任意点。使用我拥有的信息,如何以这种方式选择任意点进行归一化?

我完全不确定如何解决“向上”向量。

最佳答案

首先从欧拉角创建一个变换矩阵(使用与渲染时相同的方法)。然后直接从中提取向前和向上的轴向量。例如,我的 View 矩阵使用 Z 轴表示前进/后退,使用 X 轴表示左/右,所以我只使用这两个。您将在此处找到向量的位置:

Understanding 4x4 homogenous transform matrices

关于math - 从欧拉位置和旋转计算前向和向上矢量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37503614/

相关文章:

matlab - 热图中的旋转轴刻度标签

javascript - enchant.js 游戏创建 if 语句来显示 div

math - 十六进制数?

将负数向量提升为 R 中的分数指数

ruby - 根据矩阵形状进行坐标转换

objective-c - 仅对 UIBarButtonItem 中的图像进行动画处理

unity3d - 欧拉角约定变换

c++ - 在 Entity-Component-System 中拆分组件需要太多的重构

c# - Chip8 仿真器 - 用户输入

java - 基于偏航上/下斜坡的更好方法?