使用 PHP 找出多邊形內的點
確定點是否位於多邊形內是幾何計算中的常見任務。以下是如何在 PHP 中實現此目的:
我們從表示為具有緯度和經度座標的頂點數組的多邊形開始。此外,我們有一個具有相似座標的點,我們想要檢查它是否位於多邊形內。
為了執行此檢查,我們利用最初用另一種語言編寫並轉換為PHP 的函數:
<code class="php">$isInside = is_in_polygon( count($vertices_x) - 1, $vertices_x, $vertices_y, $longitude_x, $latitude_y );</code>
is_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)) && ($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>
如果$isInside 變數設為true,則該點位於多邊形內;否則,該點位於多邊形內。否則,它位於外部。
其他資源:
更多與多邊形相關的函數,請考慮使用 Polygon.php 類別。使用您的多邊形頂點對其進行初始化,並使用您的測試點呼叫 isInside 函數以獲得問題的另一個解決方案。
以上是如何使用 PHP 決定點是否位於多邊形內部?的詳細內容。更多資訊請關注PHP中文網其他相關文章!