我尝试将原始四元数值转换为zyx阶的EulerAngular 。我尝试使用nalgebra
旋转进行转换,但内置转换只提供xyz阶的Angular 。有没有办法从quat转换为zyx或从xyz转换为zyx?或者有没有其他库可以做同样的转换?
下面是我目前用于转换的函数:
pub fn raw_quaternion_to_euler(w: f32, x: f32, y: f32, z: f32) -> (f32, f32, f32) {
let unit_quat = UnitQuaternion::from_quaternion(nalgebra::Quaternion::from_vector([w, x, y, z]));
unit_quat.euler_angles()
}
1条答案
按热度按时间9rygscc11#
我设法找到了一种方法,使用了一个与nalgebra不同的库quaternion-core,它使用起来非常简单,而且完全符合我在这个问题中的要求。