提问人:wiswasi 提问时间:10/4/2023 更新时间:10/4/2023 访问量:61
欧拉旋转角到轴角?
Euler angle of rotation to Axis-angle?
问:
我有一个包含 Pitch X、Yaw Y 和 Roll Z 值的 CSV 文件。我想将这些 XYZ 值转换为轴角度值(XYZ 和 Theta)。我尝试执行以下操作,但在与在线转换进行比较后,我得到的值似乎不正确。
void eulerToAxisAngle(double euler[3], double axis_angle[4]) {
double cy = cos(euler[1] * 0.5);
double sy = sin(euler[1] * 0.5);
double cp = cos(euler[0] * 0.5);
double sp = sin(euler[0] * 0.5);
double cr = cos(euler[2] * 0.5);
double sr = sin(euler[2] * 0.5);
axis_angle[0] = cy * cp * cr + sy * sp * sr;
axis_angle[1] = cy * cp * sr - sy * sp * cr;
axis_angle[2] = sy * cp * sr + cy * sp * cr;
axis_angle[3] = sy * cp * cr - cy * sp * sr;
}
double euler_input[3] = {-6.017, 0.487, -0.412};
double axis_angle_output[4];
eulerToAxisAngle(euler_input, axis_angle_output);
printf("x: %f, y: %f, z: %f, angle: %f\n", axis_angle_output[0], axis_angle_output[1], axis_angle_output[2], axis_angle_output[3]);
经过一些研究,似乎我的方法是正确的,我只是无法弄清楚我做错了什么。 如果有人能帮助我或为我指明正确的方向,我将不胜感激。谢谢!
答: 暂无答案
评论
-6.017
0.266