欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python射線法判斷檢測點是否位于區(qū)域外接矩形內(nèi)

 更新時間:2019年06月28日 10:19:37   作者:謝耳朵的派森筆記  
這篇文章主要為大家詳細介紹了python射線法判斷檢測點是否位于區(qū)域外接矩形內(nèi),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python射線法判斷點是否位于區(qū)域內(nèi)的具體代碼,供大家參考,具體內(nèi)容如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-10-07 15:49:37
# @Author : Sheldon (thisisscret@qq.com)
# @Blog : 謝耳朵的派森筆記
# @Link : https://www.cnblogs.com/shld/
# @Version : 0.0.1

def isinpolygon(point,vertex_lst:list, contain_boundary=True):
 #檢測點是否位于區(qū)域外接矩形內(nèi)
 lngaxis, lataxis = zip(*vertex_lst)
 minlng, maxlng = min(lngaxis),max(lngaxis)
 minlat, maxlat = min(lataxis),max(lataxis)
 lng, lat = point
 if contain_boundary:  
  isin = (minlng<=lng<=maxlng) & (minlat<=lat<=maxlat)
 else:
  isin = (minlng<lng<maxlng) & (minlat<lat<maxlat)
 return isin

def isintersect(poi,spoi,epoi):
 #輸入:判斷點,邊起點,邊終點,都是[lng,lat]格式數(shù)組
 #射線為向東的緯線
 #可能存在的bug,當(dāng)區(qū)域橫跨本初子午線或180度經(jīng)線的時候可能有問題
 lng, lat = poi
 slng, slat = spoi
 elng, elat = epoi
 if poi == spoi:
  #print("在頂點上")
  return None
 if slat==elat: #排除與射線平行、重合,線段首尾端點重合的情況
  return False
 if slat>lat and elat>lat: #線段在射線上邊
  return False
 if slat<lat and elat<lat: #線段在射線下邊
  return False
 if slat==lat and elat>lat: #交點為下端點,對應(yīng)spoint
  return False
 if elat==lat and slat>lat: #交點為下端點,對應(yīng)epoint
  return False
 if slng<lng and elat<lat: #線段在射線左邊
  return False
 #求交點
 xseg=elng-(elng-slng)*(elat-lat)/(elat-slat)
 if xseg == lng:
  #print("點在多邊形的邊上")
  return None
 if xseg<lng: #交點在射線起點的左側(cè)
  return False
 return True #排除上述情況之后

def isin_multipolygon(poi,vertex_lst, contain_boundary=True): 
 # 判斷是否在外包矩形內(nèi),如果不在,直接返回false 
 if not isinpolygon(poi, vertex_lst, contain_boundary):
  return False
 sinsc = 0  
 for spoi, epoi in zip(vertex_lst[:-1],vertex_lst[1::]):
  intersect = isintersect(poi, spoi, epoi)
  if intersect is None:
   return (False, True)[contain_boundary]
  elif intersect:
   sinsc+=1   
 return sinsc%2==1


if __name__ == '__main__':
 vertex_lst = [[0,0],[1,1],[1,2],[0,2],[0,0]]
 poi = [0.82,0.75]
 print(isin_multipolygon(poi,vertex_lst, contain_boundary=True))

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python神經(jīng)網(wǎng)絡(luò)Keras實現(xiàn)LSTM及其參數(shù)量詳解

    python神經(jīng)網(wǎng)絡(luò)Keras實現(xiàn)LSTM及其參數(shù)量詳解

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Keras實現(xiàn)LSTM及其參數(shù)量詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python如何讀取json文件

    Python如何讀取json文件

    這篇文章主要介紹了Python如何讀取json文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 淺談Python中進程的創(chuàng)建與結(jié)束

    淺談Python中進程的創(chuàng)建與結(jié)束

    這篇文章主要介紹了淺談Python中進程的創(chuàng)建與結(jié)束,但凡是硬件,都需要有操作系統(tǒng)去管理,只要有操作系統(tǒng),就有進程的概念,就需要有創(chuàng)建進程的方式,需要的朋友可以參考下
    2023-07-07
  • Python讀取和寫入txt、Excel文件和JSON文件的方法

    Python讀取和寫入txt、Excel文件和JSON文件的方法

    Python 提供了多種方法來讀取和寫入不同類型的文件,包括文本文件(txt)、Excel 文件和 JSON 文件,本文給大家介紹了一些常用的方法和示例代碼,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • 解決90%的常見問題的8個python NumPy函數(shù)

    解決90%的常見問題的8個python NumPy函數(shù)

    這篇文章主要為大家介紹了解決90%的常見問題的8個python NumPy函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 關(guān)于Python中浮點數(shù)精度處理的技巧總結(jié)

    關(guān)于Python中浮點數(shù)精度處理的技巧總結(jié)

    雙精度浮點數(shù)(double)是計算機使用的一種數(shù)據(jù)類型,使用 64 位(8字節(jié)) 來存儲一個浮點數(shù)。下面這篇文章主要給大家總結(jié)介紹了關(guān)于Python中浮點數(shù)精度處理的技巧,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Python中Anaconda3 安裝gdal庫的方法

    Python中Anaconda3 安裝gdal庫的方法

    這篇文章主要介紹了Python中Anaconda3 安裝gdal庫的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • python占位符輸入方式實例

    python占位符輸入方式實例

    在本篇文章中小編給大家分享了關(guān)于python占位符怎么輸入的相關(guān)知識點內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2019-05-05
  • Python編解碼16進制碼流的示例代碼

    Python編解碼16進制碼流的示例代碼

    這篇文章主要為大家詳細介紹了Python編解碼16進制碼流的相關(guān)資料,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • Pygame游戲開發(fā)之太空射擊實戰(zhàn)敵人精靈篇

    Pygame游戲開發(fā)之太空射擊實戰(zhàn)敵人精靈篇

    相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,下面開始講解敵人精靈的使用
    2022-08-08

最新評論