2

このトピックについて議論しているスタックオーバーフローに関する多くの投稿を見てきました。stackoverflow から解決策を取りましたが、投稿が見つかりませんでした。つまり、2 本の線が交差する場合、外積は左側と右側で 2 つの異なる結果を生成します。1つのポジティブと1つのネガティブ。それ以外の場合は、両方とも同じ符号です。ここまでは問題ありません。使用される式は次のとおりです。ここで、AB は 1 つの行であり、CD は別の行です。

dotproductleft = (Bx-Ax) (Cy-By)-(By-Ay) (Cx-Bx)

dotproductright = (Bx-Ax) (Dy-By)-(By-Ay) (Dx-Bx)

次の特定の GPS 座標に対してこれを計算すると、交差が不可能な場合に交差が得られます。

A: x: 15.4433917 y: 47.0697272

B: x: 15.4433661 y: 47.0697722

C: x: 15.4434363 y: 47.0696776

D: x: 15.442966 y: 47.0700098

Google Maps Engine で描画すると、これらの線の間に交差がないことがわかります。

dotproductleft の結果: -7.372399999828474E-10 および dotproductright の結果: 1.1921940000328E-8

他の例では非常にうまく機能していますが、ここでは正しく機能していないことがわかりました。しかし、式に誤りは見つかりませんでした。

Google マップ上のポイント

4

1 に答える 1