3

私は(x,y)2D 三角形の 3 つの角すべての座標を持っています。ここで、 の点がこの三角形の内側にあるかどうかを確認したいと思います(xp,yp): 確認するための 2 つの方法 (理論的にのみ、まだ実装されていません) を知っています。

  • ベクトルを使用:

    vec_0A + vec_AB*lambda + vec_AC*my = vec_0P
    
    lambda + my =< 1
    
  • 直線の方程式で:

AB、AC、BC の 3 つの線形方程式を計算し、P がその左/右にあるかどうかを各方程式で確認します。

(x,y)問題 1:コーナーとポイントの 典型的な値は次のようになるため、正確でなければなりません: (-0.049721957725789148, 0.024809768773549616)-> 小数点以下 18 桁

問題 2: P が三角形の内側 (ABC) OR 三角形の内側 (DEF) OR 三角形の内側 (GHI) OR 三角形の内側 (JKL) OR それらすべての外側にあるかどうかを確認したいので、パフォーマンスが良いはずです。そして、私は〜10,000ポイントでそれをしなければなりません.

ベクトル方式はそれほど正確ではないことをどこかで読みました。真実?他の確認方法を知っていますか?おすすめのチェック方法は?

4

1 に答える 1

3

このような問題では、常にライブラリを探します...これは数学的な問題であり、おそらくライブラリに解決策があります。1 つの簡単な答え:

import matplotlib
matplotlib.path.Path.contains_points   # is the function you are looking for

使用方法については、docstring を確認してください。

于 2013-07-12T14:51:40.217 に答える