本文整理汇总了C++中osg::Quat::conj方法的典型用法代码示例。如果您正苦于以下问题:C++ Quat::conj方法的具体用法?C++ Quat::conj怎么用?C++ Quat::conj使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osg::Quat
的用法示例。
在下文中一共展示了Quat::conj方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: quat_to_euler
void Node::quat_to_euler(osg::Quat& q, osg::Vec3& euler) {
//To calculate back the euler angles from a quaternion we use this formulas
//but since we want the postmultiplication order we use the conjugate of the
//quaternion, also there has to be a change in the sign of the angles
//http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
osg::Quat q_c = q.conj();
euler[0] = -std::atan2(2.0 * (q_c.y() * q_c.z() + q_c.w() * q_c.x()),
q_c.w() * q_c.w() - q_c.x() * q_c.x() - q_c.y() * q_c.y()
+ q_c.z() * q_c.z());
euler[1] = -std::asin(-2.0 * (q_c.x() * q_c.z() - q_c.w() * q_c.y()));
euler[2] = -std::atan2(2.0 * (q_c.x() * q_c.y() + q_c.w() * q_c.z()),
q_c.w() * q_c.w() + q_c.x() * q_c.x() - q_c.y() * q_c.y()
- q_c.z() * q_c.z());
}