elecperlのブログ -2ページ目

elecperlのブログ

ブログの説明を入力します。


ある角度へ旋回するには右回りと左回りのどっちが早いか、ただそれだけですね。
これはベクトルの外積を用いることで簡単にできます。
下のソースではベクトルB(bx,by)がベクトルA(ax,ay)をおっかけます。
omegaAの原点からみた角度、thetaBの原点から見た角度です。
ABは正規化されてなければ正しく判定できません

#ベクトル生成
ax, ay = cos(omega), sin(omega)
bx, by = cos(theta), sin(theta)

cp = cross( ax, ay, bx, by ) #外積を返す関数

if( cp > 0.0 )
theta += 0.01 #旋回速度
end
if( cp < 0.0 )
theta -= 0.01
end