3

道路を表すポリラインがあり、すべての部分の道路幅がわかっている場合、ポイントが道路上にあるかどうかを判断するために使用できるアルゴリズムはありますか? 線自体の幅が 1px であるため、これを行う方法が完全にはわかりません。

ありがとう、

ジェフ

4

2 に答える 2

2

点から線までの最小距離を見つけます (線に垂直なベクトルになります)。実際の計算では、P0 は道路セグメントの最初のポイント、v は道路セグメントのベクトル、w は P0 から問題のポイントまでのベクトルです。ポリラインの各エッジを反復処理する必要があります。距離がそのセグメントの幅より小さい場合、それは道路上にあります。

d = |v x w| / |v|

角は、丸みを帯びた (一定の半径) として扱うか、角度のあるものとして扱うかによって、扱いにくい場合があります。

于 2009-08-24T01:52:12.727 に答える
2

おそらく、各線分を取得し、線分とその幅の長方形を作成し、長方形/点衝突アルゴリズムを使用して、長方形に点が含まれているかどうかを判断できます。適切なアルゴリズムは、幅 = 1 のシナリオを説明します。これは、線分の逆関数を構築し、y-1(point.y) が line_segment.x1 と line_segment.x2 の間の x であるかどうかを判断するだけです。

于 2009-08-24T01:52:27.750 に答える