中的最小角度来最小参数化的表示任意方向

中的最小角度来最小参数化的表示任意方向

1. 定义

通过指定与三个旋转轴相关联的三个角度,可以在三维空间中最小化地表示任意方向。

笔者理解:依次绕xyz的3个轴旋转3次后的3个值用来表示物体的方向。

在这里插入图片描述

绕原坐标z轴(蓝色)旋转unity 物体绕自身旋转,旋转一圈后x轴(绿色)材质材料,旋转两圈后z轴(红色)游戏图片,得到的红色坐标系代表目标方向。

在这里插入图片描述

1.1 数学计算

新生成的坐标系(XYZ)与原始坐标系(xyz)的矩阵相乘。

在这里插入图片描述

在这里插入图片描述

2. 有 3 个欧拉角:俯仰角、偏航角和滚动角

在这里插入图片描述

2.1 俯仰角 pitch

y 值等于 sin θ

方向.y = sin(glm::radians(pitch)); // 请注意unity 物体绕自身旋转,我们首先将角度转换为弧度

方向.x = cos(glm::radians(pitch));

方向.z = cos(glm::radians(pitch));

2.2偏航角偏航

在这里插入图片描述

方向.x = cos(glm::radians(pitch)) * cos(glm::radians(yaw)); // 注解:direction表示相机的前轴(Front),与本文第一张图相同,第二个相机的方向向量是相反的

方向.y = sin(glm::radians(pitch));

方向.z = cos(glm::radians(pitch)) * sin(glm::radians(yaw));