Javascript を使用して HTML5 Canvas ゲームを作成しています。
オブジェクトをスムーズに特定の方向に回転させたい。
方向を変数として保存し、ラジアンを使用しています。コードは次のように機能します。
window.setInterval(loop,25);
var dir = 0;
var targetDir = Math.PI/2;
function loop() {
dir += (targetDir - dir) / 5;
document.getElementById('text').innerHTML = dir; //To display the direction
}
<p id='text'></p>
ほとんどの場合はうまくいきますが、方向とターゲットの方向が左右反対の場合、コンピューターは、ターゲットに到達する最速の方法は、次のように完全に一周することであると想定します: (画像)
正しく機能させるために使用できるアルゴリズムを知っている人はいますか?