是否有可能偏航歐拉角使用轉換偏航歐拉角在範圍[-90,90]至[0,360]
btTransform trans;
trans.getBasis().getEulerYPR(rx, ry, rz);
到範圍[0 Bullet物理引擎得到轉換, 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 ....唷!
是我的答案,你找什麼呢? http://stackoverflow.com/questions/29869130/how-to-get-the-euler-rotation-of-a-rigid-body-between-0-to-360-in-bullet-physics/37506181#37506181 – Andrew