这就是我所拥有的
// Calculate the angle between plane position and destination point
CVector3 facingVec = m_vDestination - m_vPosition;
fAngle = -Math::radiansToDegrees ( (float)atan2f(m_vDestination.x - m_vPosition.x, m_vDestination.y - m_vPosition.y) ) ;
//This doesn't work, when rotating from ex. 350 degree to 0
//plane has to go all the way around 360,350,340,330,
//...,120,...100,90,..down to zero
float angleToTurn = fAngle - m_fRotationAngle;
if(angleToTurn < 0)
{
angleToTurn += 360.0f;
}
m_fRotationAngle += (angleToTurn) / 5;
// Move the unit towards the calculated angle m_fRotationAngle
m_vDirection.x = (-sin(Math::degreesToRadians(m_fRotationAngle)));
m_vDirection.y = (cos(Math::degreesToRadians(m_fRotationAngle)));
m_vPosition += ( 2 * m_vDirection * fDelta);
这就是它的样子
YT Video - 对于演示版本感到抱歉,此刻我无法获得任何免费资料。
这就是我需要的
而不是:350,340,330,320,310,300,290,...... 10,0,15 它应该继续:350,0,15
希望你能帮助我和这些家伙一起帮助我,我已经放弃了更好的方法 - 而且我现在几天都在努力解决这个问题。
答案 0 :(得分:1)
如果我正确读到这个,你试图找到两个向量之间插入的最小角度?如果是这样,以下算法应该起作用:
您需要计算相对于另一个第三个矢量[1,0]的角度,以便您可以确定向左或向右旋转的天气。
编辑:我看到您的YouTube链接已损坏,现在我看到它再次正常运行。我想我的答案就是你所追求的。