>데이터 베이스 >MySQL 튜토리얼 >PHP에서 점이 다각형 내부에 있는지 어떻게 확인할 수 있나요?

PHP에서 점이 다각형 내부에 있는지 어떻게 확인할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-10-31 03:58:30193검색

How can I determine if a point is inside a polygon in PHP?

PHP의 Point-in-Polygon 알고리즘

문제:

다각형과 비슷한 좌표를 가진 점을 사용하여 점이 다각형의 경계 내에 있는지 확인합니다.

구현:

PHP는 고전적인 방법을 사용하여 이 문제를 해결하는 기능을 제공합니다. Point-in-Polygon 알고리즘. 함수는 다음과 같습니다.

<code class="php">function is_in_polygon($points_polygon, $vertices_x, $vertices_y, $longitude_x, $latitude_y)
{
  $i = $j = $c = 0;
  for ($i = 0, $j = $points_polygon ; $i < $points_polygon; $j = $i++) {
    if ( (($vertices_y[$i]  >  $latitude_y != ($vertices_y[$j] > $latitude_y)) &amp;&amp;
     ($longitude_x < ($vertices_x[$j] - $vertices_x[$i]) * ($latitude_y - $vertices_y[$i]) / ($vertices_y[$j] - $vertices_y[$i]) + $vertices_x[$i]) ) )
       $c = !$c;
  }
  return $c;
}</code>

사용법:

함수를 사용하려면 다음 매개변수를 제공하세요.

  • $points_polygon: 다각형의 정점 수(0부터 시작하는 배열).
  • $vertices_x: 다각형 정점의 x 좌표 배열
  • $vertices_y: 다각형 꼭짓점의 y 좌표 배열.
  • $longitude_x: 테스트할 점의 x 좌표.
  • $latitude_y: 테스트할 점의 y 좌표입니다.

점이 다각형 내에 있고 그렇지 않으면 false.

추가 참고 사항:

PHP는 또한 isInside를 포함하여 여러 다각형 관련 함수가 포함된 Polygon.php 클래스를 제공합니다. 점이 다각형 내에 있는지 확인하는 데 사용할 수 있습니다.

위 내용은 PHP에서 점이 다각형 내부에 있는지 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.