中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP判斷點在不在多邊形區域內外的方法

發布時間:2020-05-29 10:20:18 來源:億速云 閱讀:301 作者:PHP專家 欄目:編程語言

PHP 語言作為當今最熱門的網站程序開發語言,它具有成本低、速度快、可移植性好、 內置豐富的函數庫等優點,因此被越來越多的企業應用于網站開發中。但隨著互聯網的不斷更新換代,PHP語言也出現了不少問題。

PHP判斷點在不在多邊形區域內外的方法

根據數學知識的射線法,射線與幾何多邊形相交的點的個數為奇數則是在幾何內部;

偶數在外部;

/**
 * Created by PhpStorm.
 * function: inArea
 * Description: 判斷點是否在多邊形區域內
 * User: Xiaoxie
 * @param $x 
 * @param $y
 * @param $arr 幾何訂單坐標
 * @return int
 *
 */
public function inArea($x,$y,$arr)
{
    //點的數量
    $count = count($arr);
    $n = 0; //點與線相交的個數
    $bool = 0;//外
    for ($i = 0, $j = $count - 1; $i < $count; $j = $i, $i++) {
        //兩個點一條線 取出兩個連接點的定點
        $px1 = $arr[$i][0];
        $py1 = $arr[$i][1];
        $px2 = $arr[$j][0];
        $py2 = $arr[$j][1];
        //$x的水平位置畫射線
        if($x>=$px1 || $x>= $px2)
        {
            //判斷$y 是否在線的區域
            if(($y>=$py1 && $y<=$py2) || ($y>=$py2 && $y<= $py1)){
 
 
                    if (($y == $py1 && $x == $px1) || ($y == $py2 && $x == $px2)) {
 
                       #如果$x的值和點的坐標相同
                        $bool = 2;//在點上
                        return $bool;
 
                    }else{
                        $px = $px1+($y-$py1)/($py2-$py1)*($px2-$px1) ;
                        if($px ==$x)
                        {
                            $bool = 3;//在線上
                        }elseif($px< $x){
                            $n++;
                        }
 
                    }
            }
        }
 
    }
    if ($n%2 != 0) {
        $bool = 1;
    }
    return $bool;
}

測試數組

$arr = [
    ['9.4','12.04'],
    ['6.68','8.61'],
    ['9.05','6.06'],
    ['6.24','3.87'],
    ['10.02','2.55'],
 
    ['14.06','4.13'],
 
    ['16.35','7.56'],
 
    ['11.69','8.35'],
];
 
$x =15.73;
$y = 5.62;
//在外
$x = 9.97;
$y = 4.96; //在內

 PHP判斷點在不在多邊形區域內外的方法

PHP的特性包括:

1、PHP獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。

2、PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。

3、PHP支持幾乎所有流行的數據庫以及操作系統。

4、PHP可以用C、C++進行程序的擴展。


以上就是PHP判斷點在不在多邊形區域內外的方法的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

京山县| 双辽市| 皮山县| 博罗县| 洛南县| 鸡泽县| 惠水县| 高州市| 奉化市| 宁国市| 黔西县| 铜陵市| 苗栗县| 天长市| 西吉县| 容城县| 明溪县| 阿瓦提县| 荣成市| 阿拉尔市| 盖州市| 南平市| 绵阳市| 申扎县| 游戏| 辽阳县| 万源市| 凤冈县| 且末县| 河曲县| 阜平县| 油尖旺区| 刚察县| 宁陕县| 平远县| 朝阳县| 客服| 措美县| 嘉荫县| 金塔县| 长垣县|