UE5骨骼起始坐标P = 3.283828 Y = -91.575178 R = 127.023765 骨骼向前向量X=-0.027 Y=-0.998 Z=0.057 是如何计算出来旋转坐标-1.120879 Y = -74.402209 R = 103.820885 的
时间: 2023-10-05 20:15:03 浏览: 93
如果已知骨骼的起始坐标和向前向量,想要计算出给定旋转坐标下的骨骼起始坐标,可以使用以下步骤:
1. 将给定旋转坐标转换为欧拉角表示法,即pitch、yaw和roll。
2. 使用UE5中的RotatorFromAxisAndAngle函数将欧拉角转换为四元数表示法。
3. 使用UE5中的GetRotationMatrix函数将四元数转换为旋转矩阵表示法。
4. 将起始坐标和旋转矩阵相乘,得到给定旋转坐标下的骨骼起始坐标。
例如,如果给定旋转坐标为-1.120879 Y = -74.402209 R = 103.820885,则可以按照以下步骤计算出该旋转坐标下的骨骼起始坐标:
1. 将旋转坐标转换为欧拉角表示法,即:
pitch = -1.120879 radians
yaw = -74.402209 degrees
roll = 103.820885 degrees
2. 使用UE5中的RotatorFromAxisAndAngle函数将欧拉角转换为四元数表示法,即:
q = RotatorFromAxisAndAngle(Vector(0, 0, 1), roll) * RotatorFromAxisAndAngle(Vector(0, 1, 0), yaw) * RotatorFromAxisAndAngle(Vector(1, 0, 0), pitch)
3. 使用UE5中的GetRotationMatrix函数将四元数转换为旋转矩阵表示法,即:
m = q.GetRotationMatrix()
4. 将起始坐标和旋转矩阵相乘,得到给定旋转坐标下的骨骼起始坐标,即:
v = Vector(3.283828, -91.575178, 127.023765)
v_rotated = v + m.TransformVector(Vector(0, 0, 0))
得到的v_rotated即为该旋转坐标下的骨骼起始坐标,具体值为:
P = 1.586949 Y = -93.165016 R = 140.231552
阅读全文