私は線を持っています、私はそれが命中する最も近い線分を見つける必要があります。私は線分を最初にソートするとO(log n)の時間にこれを行うことは可能だと思いますが、ソート方法を覚えていません...何らかの木がうまくいくと思いますが、彼らは開始点と終了点の両方で?可能であれば、このデータ構造にすばやく挿入したいと思います。高速線交差のための線分セグメントコンテナ? (2D)
1つの線と1つの線分のコードがたくさんありますが、1つの線分と多くの線分に何かが必要です...私はどのような用語をGoogleに知らないのですか?
適切な記事へのリンクが良好で、C++コードがさらに優れています。ありがとう! :)
PS:線分は実際にはCCW順序でソートされた非自己交差ポリゴンの辺ですが、別の方法でそれらをソートするといくつかの利点があると思いますか?
これはすべて2Dです。二思想に
、私はこのが可能で完全にはよく分かりません。いくつかの種類の空間パーティショニングが役立つかもしれませんが、そうでなければ、私は線を並べ替える方法を考えていないので、任意の線と比較することができます。
いいえ、私が考えていたO(log n)は、私が信じるだけの水平線または垂直線分のものでした。 Bresenhamのアルゴリズムは交差点を見逃すかもしれないように見えますが、それはできませんか?それは、それが入力するすべてのセルを "満たす"わけではありません。それ以外の場合、これは良いアプローチのように見えます。 – mpen
グリッドトラバーサルはここで述べるアルゴリズムで行うべきです。http://www.devmaster.net/articles/raytracing_series/part4.php、セクション「グリッドトラバーサル」を参照してください。記事に表示されているように、多角形に(〜100)辺が多数ある場合にのみ、おそらく恩恵を受けるでしょう。 –
まあ、彼はおそらく彼は何百ものエッジはないだろうが、同じエッジが何千回も使われるかもしれない。これは、私が死んだ質問であると思ったことについての最善の答えのように見えるので、私はあなたにその点検をします;)ありがとう。 – mpen