Point-in-Polygon 감지에 Ray Tracing 또는 Matplotlib의 path.contains_points 중 어떤 방법이 더 효율적입니까?

Linda Hamilton
풀어 주다: 2024-11-03 19:33:03
원래의
303명이 탐색했습니다.

Which Method is More Efficient for Point-in-Polygon Detection: Ray Tracing or Matplotlib's path.contains_points?

Python의 효율적인 다각형 내 점 감지

점이 다각형 내에 있는지 확인하는 것은 계산 기하학에서 자주 수행되는 작업입니다. 이 작업에 대한 효율적인 방법을 찾는 것은 많은 수의 포인트를 평가할 때 유리합니다. 여기서는 일반적으로 사용되는 두 가지 방법인 Ray Tracing과 Matplotlib의 path.contains_points 함수를 탐색하고 비교합니다.

Ray Tracing 방법

Ray Tracing 방법은 Matplotlib의 path.contains_points 함수와 교차합니다. 다각형의 측면으로 조사 중인 점. 교차점 수를 세고 패리티를 기준으로 점이 다각형 내부에 있는지 확인합니다.

Matplotlib의 path.contains_points 함수

Matplotlib의 path.contains_points 함수는 다각형을 나타내는 경로 객체입니다. 주어진 지점이 정의된 경로 내에 있는지 확인합니다. 이 기능은 제공된 코드 조각에서 볼 수 있듯이 광선 추적 접근 방식보다 빠른 경우가 많습니다.


from time import time
import matplotlib.path as mpltPath

다각형 및 무작위 점

다각형 = [[np.sin(x) 0.5, np.cos(x) 0.5] for x in np.linspace(0, 2*np.pi, 100)]
points = np.random.rand(10000, 2)

레이 트레이싱 경과 시간

start_time = time()
inside1 = [ray_tracing_method(point[0], point[ 1], 폴리곤) for point]
print("Ray Tracing Elapsed time: " str(time() - start_time))

Matplotlib contain_points elapsed time

start_time = time ()
path = mpltPath.Path(polygon)
inside2 = path.contains_points(points)
print("Matplotlib contain_points 경과 시간: " str(time() - start_time))
< /pre>

위 코드는 Ray Tracing에 비해 Matplotlib 접근 방식의 실행 시간이 훨씬 더 빠르다고 보고합니다.

기타 옵션

이러한 방법 외에도 , 기하학적 작업을 위해 특별히 설계된 Shapely 패키지는 다각형 점 검사를 위한 효율적인 기능을 제공합니다.

위 내용은 Point-in-Polygon 감지에 Ray Tracing 또는 Matplotlib의 path.contains_points 중 어떤 방법이 더 효율적입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!