2017-05-31 21 views
1

リスト(car_coord)から返された値がポリゴンの内側にあるかどうかを調べる関数を定義していました。リスト(car_coord)はリアルタイムで返され、リストはPythonでmplPathを使ってポリゴンの頂点を定義する

car_coord = [[(847.88,1109.476)]、[842.3852,1050.5856]]のようになります。これらの点はポリゴンにありますが、関数はFalseを返します。どんな提案も感謝します。幾何学的なオブジェクトの場合

def points_inside_polygon(car_coord): 
    poly = [800,1300,780,1250]   #vertex of the polygon 
    bbPath = mplPath.Path(np.array([[poly[0],poly[1]],[poly[1],poly[2]],[poly[2],poly[3]],[poly[3],poly[0]]])) 
    if bbPath.contains_point((car_coord)): 
     print 'yes' 
     return True 
    else: 
     print 'no' 
     return False 

答えて

1

、あなたはこの

from shapely import geometry 

poly = geometry.Polygon([[p.x, p.y] for p in pointList]) 
+0

ような何かをしようと次に見

https://pypi.python.org/pypi/Shapely を取るshapely

を使用する必要があり、あなたの提案をありがとうございました。残念ながら、古いバージョンのpythonを使用しています。ここでは、整形モジュールはサポートされていません。上記のコードでどこで間違いを起こしているのでしょうか? –

+0

私は間違いを見つけることができました。 –

関連する問題