現在「M使用線性貝塞爾插值角度:逆時針插入一個角度?
float CardAnimation::valueAt(float valueA, float valueB, float t) const
{
return (1.0f - t) * valueA + t * valueB;
}
....
if(m_startCard.m_angle != m_endCard.m_angle)
{
m_targetCard->m_angle =
valueAt(m_startCard.m_angle, m_endCard.m_angle,m_interval);
}
可正常工作。但這是我的問題。如果你的起始角度是0.5f,而你想要達到6.0f(弧度),那麼當它從6.0f - 0.5f> 3.14f時,它會從0.5f順時針旋轉到6.0f,逆時針方向會更聰明從0.5f到6.0f(導致僅移動0.78弧度而不是5.5)。如果abs(endAngle - startAngle> PI),我應該怎樣做逆時針內插?
感謝
這與以前的問題有什麼重大區別嗎?http://stackoverflow.com/q/6147839/2509和http://stackoverflow.com/q/6143964/2509? – dmckee
是的,是的。 – jmasterx
如果你真的相信那麼你的困難的根源是你還沒有正確地說明問題,因爲它們都是同一個任務的實例:*「識別兩個任意角度之間的弧」*。 – dmckee