QAngle
< Zh
Jump to navigation
Jump to search
This page was translated by DaKang233 on May 4, 2024 (UTC+8). Anyone is welcome to add new content or fix errors.
QAngle 是在Source 中的一个C++类,表示遵循右手定则的三维外部Tait-Bryan旋转,偏移自基准Z轴 。每个QAngle包含三个vec_t 旋转数值:
X
X 俯仰角 +向下/-向上
Y
Y 偏航角 +向左/-向右
Z
Z 滚转角 +向右/-向左
(-45,10,0)
意味着向上45°,向左10°,滚转角为0°。


声明
QAngle angMyAngle = QAngle(-45,10,0);
- 也可以分别给X、Y和Z成员变量赋值。
- 前缀
ang
(有时只需a
)标识变量为角度。
方向
要了解QAngle([X], [Y], [Z])
是如何工作的,可以想象一个第一人称视角:
- 向下或向上对应于正或负的[X]
- 向左或向右对应于正或负的[Y]
- 侧头使右或左耳朝向地面对应于正或负的[Z]
将这些回归到向量和坐标:[X]、[Y]和[Z]的值分别对应于绕绝对轴 [证实] y、z和x进行顺时针旋转(以度为单位)。
“顺时针旋转”假定观察者位于原点,朝向所述轴的正方向。
命名约定
不同的领域使用不同的命名约定来描述这些角度。为了消除任何冲突的术语,以下提供了简要的解释。Source引擎似乎从航空航天工程中吸取了其术语。
航空航天工程
数学
从向量转换
由于没有特定的角度键字段,在Hammer中选择的角度将作为一个vector 到达。它的坐标表示旋转的度数,而不是坐标,因此必须在使用之前修复:
QAngle angMyAngle = QAngle(vecFromHammer.x, vecFromHammer.y, vecFromHammer.z);
// 如果需要,可以将其转换回向量
AngleVectors(angMyAngle, &vecFromHammer);