この記事のURL

http://www.dango-itimi.com/blog/archives/2006/000884.html


FLASH tips ピンボールバーの処理 ボールがバーの裏表どちら側に衝突したか外積を用いて調査

以前作成したピンボールバーのサンプルにまだもろもろバグがあるようで、そのバグの原因を解決するために、ボールがバーの裏表どちら側に衝突したかを調べる必要がでてきました。
ボールがバーの裏表どちら側に衝突したかを調べるには、ベクトルの外積の性質を利用します。

外積 参考ページ

シューティングゲームと二次元ベクトル

ピンボールのバーの中心点からバー先端方向へのベクトル(ベクトル1)と、ボール軌道のベクトル(ベクトル2)との外積を調査します。ベクトル1と2の外積が 0 より大きい場合 ボールはバーの反時計回り方向から衝突しており、 0 より小さい場合 ボールはバーの時計回り方向から衝突しているものとします。

サンプル

青点 : ボール現在位置
紺点 : ボール移動予定位置
青点から紺点の線 : ボール軌道 : ベクトル2

緑点     : バー角度調整用
ピンク点 : バー中心点
赤点     : バー先端
ピンク点から赤点 : バーライン : ベクトル1

画面各点はドラッグ&ドロップが可能です。
ベクトル1とベクトル2から成すラインが交差している場合、各々のベクトルの外積を取得しています。左上の数値がベクトル1とベクトル2の外積で得られた値です。

[ FLASH ] [ tips ] 投稿者 siratama : 2006年05月19日 00:30

トラックバック

http://www.dango-itimi.com/blog/mt-tb.cgi/844

コメント

以下コメントを書き込むだけでは、管理人には通知が行われません。通知を行いたい場合、管理人の書き込みに「返信」を押してコメントをしていただくか、あるいは Google+, Twitter へご連絡ください。




[EDIT]