たとえば、誘導弾のように、ある角度を目的の角度へと近づける方法。
現在の角度と目標の角度の差を求めて、近づく方向へ角度を加えていけばよい。このとき注意するのは差が180度よりあった場合には、遠回りの回転をしないように180度以下に丸めること。
float fNowDir; // 現在の角度 float fTargetDir; // 目標の角度 float fRotSpeed; // 回転速度 float fDiff = fNowDir - fTargetDir; if ( fDiff > PI ) fNowDir -= PI*2.0f; if ( fDiff < -PI ) fNowDir += PI*2.0f; fDiff = fNowDir - fTargetDir; if ( fDiff < 0.0f ) fNowDir += fRotSpeed; if ( fDiff > 0.0f ) fNowDir -= fRotSpeed;