RDCアルゴリズムによる衝突判定シミュレーション
大多数のオブジェクトによる衝突判定処理を作成してみました。
本プログラムでは衝突判定のアルゴリズムとして
「総当たり法」と「RDCアルゴリズム」
の2つのアルゴリズムを比較することができます。
左下の青い「判定法ボタン」をクリックすることで、2つのアルゴリズムを切り替えることができます。
ぜひクリックしていただき、処理速度の違いをご確認いただければと思います。
ちなみに「総当たり法(ブルートフォースアルゴリズム)」とは、
文字通りある1つのオブジェクトとそれ以外のすべてのオブジェクトとの衝突判定を、
すべてのオブジェクトに渡って行うものです。
非常に単純明快ですが、オブジェクトの数が増えれば増えるほど計算量も増大し、
その結果として処理も重くなります。
対して「RDCアルゴリズム」とは、非常にひらたく言えば
衝突が発生していそうな空間だけを抜き出し
その中だけで衝突判定を行うものです。
それこそ画面の両端にいるようなあからさまに衝突していないオブジェクト
まで判定を行う「総当たり法」に比べて大幅に計算量を減らすことができます。
なお、「RDCアルゴリズム」はこちらを参考にしました。
で、何となくそれだけでは物足りなく感じたので、
おもむろに画面中央に砲台を設置し、オブジェクトを破壊する砲弾を撃てるようにしてみました。
砲弾は何回かバウンドします。また、マウスボタンを長押しすることで、砲弾のサイズを変えることもできます。
さらに、画面中央下あたりのピンク色の「武器切替ボタン」をクリックすることにより、
レーザービームを発射することもできます。
これにより直線上のオブジェクトを一網打尽にすることができます。
※大多数のオブジェクトを動かすだけあって、アルゴリズム云々以前にそもそもPCに負荷がかかります。
心配な方はぜひ初期ボール数を減らしてから、スタートをクリックしてください。
前のページへ戻る