四元数转换欧拉角并使得pitch范围为0-360 c++实现
时间: 2024-03-05 14:53:24 浏览: 97
四元数转换欧拉角
4星 · 用户满意度95%
在UE4/UE5中,可以使用FQuat结构体中提供的函数将四元数转换为欧拉角,并通过一些数学运算将pitch的范围转换为0到360度。具体步骤如下:
1. 创建一个FQuat对象并设置其值。
2. 调用FQuat结构体中提供的Rotator()函数,将其转换为FRotator欧拉角对象。
3. 获取FRotator对象中的Pitch、Yaw和Roll值,即为对应的欧拉角。
4. 将Pitch的值转换为0到360度的范围。
以下是示例代码:
```cpp
// 创建四元数并设置值
FQuat QuatRotation = FQuat(FRotator(30.f, 45.f, 60.f));
// 将四元数转换为欧拉角
FRotator Rotator = QuatRotation.Rotator();
// 获取欧拉角的Pitch、Yaw和Roll值
float Pitch = Rotator.Pitch;
float Yaw = Rotator.Yaw;
float Roll = Rotator.Roll;
// 计算0到360度的Pitch值
if (Pitch < 0)
{
Pitch += 360.f;
}
```
在上面的代码中,我们首先创建一个四元数并设置其值,然后调用Rotator()函数将其转换为欧拉角对象。最后,我们分别获取欧拉角对象中的Pitch、Yaw和Roll值,即为对应的欧拉角。接着,我们将Pitch的值转换为0到360度的范围。如果Pitch的值小于0,我们就加上360度,直到其值在0到360度之间。
阅读全文