Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでポイントがポリゴン内にあるかどうかを確認する最も速い方法は何ですか?


まず、mplPath.Pathメソッドを使用してポリゴンを作成し、特定のポイントがポリゴン内にあるかどうかを確認するために、メソッドpoly_path.contains_pointを使用します。

ステップ

  • ポリゴンを作成するためのポイントのリストを作成します。

  • mplPath.Path()を使用して、指定された頂点とコードで新しいパスを作成します。

  • contains_point()メソッドを使用して、ポイント(200、100)がポリゴンに存在するかどうかを確認します。 (閉じた)パスに指定されたポイントが含まれているかどうかを返します。 =>真

  • contains_point()メソッドを使用して、ポイント(1200、1000)がポリゴンに存在するかどうかを確認します。 (閉じた)パスに指定されたポイントが含まれているかどうかを返します。 =>誤り

import matplotlib.path as mplPath
import numpy as np

poly = [190, 50, 500, 310]
poly_path = mplPath.Path(np.array([[190, 50],
                                    [50, 500],
                                    [500, 310],
                                    [310, 190]]))
point = (200, 100)
print(point, " is in polygon: ", poly_path.contains_point(point))

point = (1200, 1000)
print(point, " is in polygon: ", poly_path.contains_point(point))

出力

(200, 100) is in polygon: True
(1200, 1000) is in polygon: False

  1. 与えられたポリゴンの内側または境界にある与えられた点をチェックするか、Pythonではないかをチェックするプログラム

    ポリゴンを表すデカルト点[(x1、y1)、(x2、y2)、...、(xn、yn)]のリストがあり、xとyの2つの値があるとします。 (x、y)がこのポリゴンの内側にあるのか、境界上にあるのかを確認してください。 したがって、入力がpoints =[(0、0)、(1、3)、(4、4)、(6、2)、(4、0)] pt =(3、1) その場合、出力はTrueになります これを解決するには、次の手順に従います- ans:=False 0からポリゴンのサイズ-1までの範囲のiの場合、実行します (x0、y0):=ポリゴン[i] (x1、y1):=ポリゴン[(i + 1)ポリゴンのm

  2. ガイド:iPhone を充電する最速の方法は?

    スマートフォンを充電ケーブルやワイヤレス充電器に何時間も接続したままにしたくない人はいません。急速充電は今や主流です。このガイドでは、iPhone 所有者が利用できるさまざまな急速充電方法とアクセサリを比較します。 目標は、iPhone を充電する最も速く、最も安全で、最も効率的な方法について説明することです。 急速充電に対応している iPhone は? 下記のiPhoneモデルは急速充電に対応しています。ただし、これらすべての高速充電 iPhone に高速充電アクセサリが付属しているわけではありません。 iPhone 8 シリーズ — iPhone 8 および 8 Plus iPh