阅读新闻

欧拉角转换四元数代码

[日期:2007-03-31] 来源:  作者: [字体: ]
         
如有转载,请注明:
http://www.azure.com.cn

根据欧拉转动计算四元数的变换如下:
q = qyaw qpitch qroll

其中
qroll = [cos(y/2), (sin(y/2), 0, 0)];
qpitch = [cos(q/2), (0, sin(q/2), 0)];
qyaw = [cos(f/2), (0, 0, sin(f/2)];


其转换代码如下:
void EulerToQuat( float roll, float pitch, float yaw, Quat* quat)
{
 float cr, cp, cy, sr, sp, sy, cpcy, spsy;
 
 //计算求四元数时使用到的所有三角值
 cr = cos(roll / 2);
 cp = cos(pitch / 2);
 cy = cos(yaw / 2);

 sr = sin(roll/2);
 sp = sin(pitch/2);
 sy = sin(yaw/2);
 cpcy = cp * cy;
 spsy = sp * sy;

 //组合这些值,生成四元数的向量和w
 quat->w = cr*cpcy + sr*spsy;
 quat->x = sr*cpcy - cr*spsy;
 quat->y = cr*sp*cy + sr*cp*sy;
 quat->z = cr*cp*sy - sr*sp*cy;
}


阅读:
录入:admin

评论 】 【 推荐 】 【 打印
上一篇:地形教程 - TGA库源代码
下一篇:矩阵转换四元数代码
相关新闻      
本文评论       全部评论
发表评论
字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款