私は速く(パフォーマンスに大きく制約されている)アルゴリズムを探しています。この点が円の中のすべての矩形の外にある円の中の点を見つけます(これらの長方形は回転することができます)。 あるいは、円Aの中心が円Bの内側にあり、円Aが線分のセットと交差しない円Aを見つけることができます。回転した四角形の中にない点を見つける
私が思いつくことができる唯一の解決策は、ポイントのサンプルをループして、それぞれの矩形をループすることです。しかし、私のスペースは連続しているので、それはかなりの痛みです。私は基本的に交差しない単一の点に満足していますが、そのような点が存在しない場合があります。後者の場合、私は理想的には交差点の量が最も少ない点を見つけるか、そのような点が存在しないという答えを見つけることができます。
これをO(n^2)未満のもので達成できるアルゴリズムを知っている人はいますか?良い候補点を特定するのに役立つものはどれも素晴らしいだろう。
状況の典型的な例は次のとおりです。 大きな矩形があり、小さな円があり、そこには点(青色で示されています)があります。多くの長方形が円の外に完全に落ちるのはよくあることですが、円が完全に覆われていることも共通しています。矩形に使用される傾向のある長さと幅の小さなセットがあります。
何も前処理できますか?そして、あなたはそれが典型的にどのように見えるのかを示すことができますか? – harold
典型的な画像をOPに追加しました。矩形が常に変動するので、私ができると思う前処理はほとんどありません。重い計算は実際には可能ではありません – AnythingElse
グリッドセルが完全に矩形から解放されていることを記録する細かいグリッド(またはより良い四分木)を保持するにはあまりにも多くのメモリを焼き付けるならば、それを近くのすべての矩形に対して「クリップ」します(より粗いグリッドを使用して、クリップする必要があるすべての矩形を見つけることができます)。クリッピング後に残っている領域がある場合は、その内部の任意の点を選択できます(頂点の平均は必ずしも内部にあるとは保証されません)。残った部分は凸であることが保証されていませんが、いい選択です)。 –