|
发表于 2013-4-19 18:48:00
|
显示全部楼层
本帖最后由 济南电子爱好者 于 2013-4-19 19:06 编辑
/*欧拉角转四元*/
void FromEulerAngle() // ,
{
float fCosHRoll = cos(ea.fRoll * .5f);
float fSinHRoll = sin(ea.fRoll * .5f);
float fCosHPitch = cos(ea.fPitch * .5f);
float fSinHPitch = sin(ea.fPitch * .5f);
float fCosHYaw = cos(ea.fYaw * .5f);
float fSinHYaw = sin(ea.fYaw * .5f);
w = fCosHRoll * fCosHPitch * fCosHYaw + fSinHRoll * fSinHPitch * fSinHYaw;
x = fCosHRoll * fSinHPitch * fCosHYaw + fSinHRoll * fCosHPitch * fSinHYaw;
y = fCosHRoll * fCosHPitch * fSinHYaw - fSinHRoll * fSinHPitch * fCosHYaw;
z = fSinHRoll * fCosHPitch * fCosHYaw - fCosHRoll * fSinHPitch * fSinHYaw;
}
这是网络中 欧拉角转四元数的 一段代码,在你的内容中只介绍了四元数向欧拉角的转化 ,不知道楼主有没有 欧拉角向四元数转化的推导过程的相关资料.
从这代码可以看出,是用角增量近似看成欧拉角, 这里用的是什么方法求解四元数微分方程,不知楼主是否了解?? |
|