さまざまな形のオブジェクトで満たされた部屋があるプロジェクトを行っています。
私は部屋を絵の具で描いています。絵はすべて白く、壁/障害物はすべて赤く塗っています。
ペイントを使用して、各可動オブジェクトを別のファイルに描画しています。
ここで、部屋のマップとオブジェクトの両方を 1 と 0 のマトリックスとしてプログラムにロードします。最初のマトリックスと、部屋にロードするオブジェクトごとに別のマトリックスがあります。
オブジェクトは部屋の中を自由に移動でき、任意の距離、任意の角度で移動し、回転することができます。オブジェクトを任意の角度で回転させ、衝突を検出できるようにする方法を考案するにはどうすればよいですか? つまり、オブジェクトが上下左右に移動できる場合、両方のマトリックスをチェックして、それらがいずれかの 1 と「オーバーラップ」しているかどうかを確認できます。しかし、オブジェクトをたとえば 10 度回転させたい場合、それを行列に変換して壁の行列と照合する方法がわかりません。
行列表現を削除して数学的領域を作成し、ライブラリを使用して IR^2 計算で処理するようにこれを処理する必要がありますか? 計算的にはかなり高価ではないでしょうか?
これを行う簡単な方法は何ですか?一流の方法である必要はありませんが、複雑なアルゴリズムに使用しているため、これを使用して各反復で計算時間を失いたくありません。