首頁 > 資料庫 > mysql教程 > 如何使用 PHP 決定點是否位於多邊形內部?

如何使用 PHP 決定點是否位於多邊形內部?

Mary-Kate Olsen
發布: 2024-10-25 01:07:02
原創
377 人瀏覽過

How to Determine if a Point Lies Inside a Polygon Using PHP?

使用 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)) &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>
登入後複製

如果$isInside 變數設為true,則該點位於多邊形內;否則,該點位於多邊形內。否則,它位於外部。

其他資源:

更多與多邊形相關的函數,請考慮使用 Polygon.php 類別。使用您的多邊形頂點對其進行初始化,並使用您的測試點呼叫 isInside 函數以獲得問題的另一個解決方案。

以上是如何使用 PHP 決定點是否位於多邊形內部?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板