このトピックについて議論しているスタックオーバーフローに関する多くの投稿を見てきました。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
他の例では非常にうまく機能していますが、ここでは正しく機能していないことがわかりました。しかし、式に誤りは見つかりませんでした。