オブジェクトがAに配置されており、 Bに移動しようとしています。配列Cの回避される点の距離D内で移動しない移動ベクトルを計算したいと思います。
したがって、移動ベクトル(BA)を正規化し、オブジェクトの速度を掛けると、C内の任意のポイントのD内に移動する場合、ベクトルは回転しないように回転します。
これは2次元です。また、この操作に名前が付いている場合は、何と呼ぶかわからなかったので、コメントするか、この質問を自分で編集してください。
また、私の最初の本能は、アクティブエリアをノードに分割してA *を実行することでしたが、これに対して数学的アプローチを試してみたいと思います。群れを使ったいくつかの実験で、それができるという印象を受けます。
更新(コメントから):この画像は私が望む解決策に非常に近いです:
左の地点からスタートすると、ゴール(もう一方の地点)に向かって右に曲がり始め、右側の壁を検出したので、曲がるのをやめて前進します。壁がなくなったので、再びゴールに向かって曲がり始めることができます。これによりオブジェクトがまったく到達しない可能性があることはわかっていますが、私が何を意味するかを知っている場合は、必ずしも解決策ではなく、動作を定義したいと思います。
Update2:アクティブエリアをノードのセットに変換すると、非効率になる可能性があります。A *およびその他のヒューリスティックグラフ走査アルゴリズムは、低次元の問題に最適です。しかし、私が移動したいエリアは無限のサイズであり、そこに散らばっている障害物はほんの一握りです。ノード自体、またはむしろ潜在的な位置は、無限に小さいです。もちろん、これはある種の四分木で最適化することもできますが、何らかの方法で回転および補間された単純な運動ベクトルでもこれを解決できると感じています。