是否有可能偏航欧拉角使用来自Bullet物理引擎转换了
btTransform trans;
trans.getBasis().getEulerYPR(rx, ry, rz);
到范围[0,360]。 否则,对于一个360度旋转我得到的欧拉角从0-> 90-> 0-> -90改变 - > 0
但我从0-> 90-> 180-> 270-> 0要
我的图形API只接受的旋转角度为0〜360的范围内
那么,0-> 90-> 0-> -90在场上的价值。 这是我现在使用的代码:
trans.getBasis().getEulerYPR(yaw, pitch, roll);
y1 = (pitch >= 0) ? pitch : (PI2 + pitch);
我试图增加180节距的负值,但是,这并不工作。 嗯,看来我会需要找到另一种方式来旋转网格顺利使用欧拉角。
更新:看来我不应该直接使用子弹的功能。 更好的选择是直接处理的基础矩阵:
btMatrix3x3 m_el = trans.getBasis();
ry = btAtan2( m_el[0].z(), m_el[0].x() );
if(ry < 0)
ry += SIMD_PI;
所以这给了我关于y轴的旋转。 现在谈谈其他2 ....唷!