<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      GMAP 判斷一個坐標點是否在不規則多邊形內部的算法

      在gmap(地理信息管理系統)中,判斷一個坐標是否在多邊形內部是個經常要遇到的問題。乍聽起來還挺復雜。根據W. Randolph Franklin 提出的PNPoly算法,只需區區幾行代碼就解決了這個問題。

       

      假設多邊形的坐標存放在一個數組里,首先我們需要取得該數組在橫坐標和縱坐標的最大值和最小值,根據這四個點算出一個四邊型,首先判斷目標坐標點是否在這個四邊型之內,如果在這個四邊型之外,那可以跳過后面較為復雜的計算,直接返回false。

       

      if (p.x < minX || p.x > maxX || p.y < minY || p.y > maxY) {

           // 如果這個測試都過不了。。。直接返回false;

      }

      接下來是核心算法部分:

       

      int pnpoly (int nvert, float *vertx, float *verty, float testx, float testy) {

          int i, j, c = 0;

          for (i = 0, j = nvert-1; i < nvert; j = i++) {

              if ( ( (verty[i]>testy) != (verty[j]>testy) ) &&

      (testx < (vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]) )

                  c = !c;

          }

          return c;

      }

       

      額,代碼就這么簡單,但到底啥意思呢:

       

      首先,參數nvert 代表多邊形有幾個點。浮點數testx, testy代表待測試點的橫坐標和縱坐標,*vertx,*verty分別指向儲存多邊形橫縱坐標數組的首地址。

      我們注意到,每次計算都涉及到相鄰的兩個點和待測試點,然后考慮兩個問題:

      1. 被測試點的縱坐標testy是否在本次循環所測試的兩個相鄰點縱坐標范圍之內?即

      verty[i] <testy < verty[j]

      或者

      verty[j] <testy < verty[i]

      2. 待測點test是否在i,j兩點之間的連線之下?看不懂后半短if statement的朋友請自行在紙上寫下i,j兩點間的斜率公式,要用到一點初中解析幾何和不等式的知識范疇,對廣大碼農來說小菜一碟。

      然后每次這兩個條件同時滿足的時候我們把返回的布爾量取反。

      可這到底是啥意思啊?

      這個表達式的意思是說,隨便畫個多邊形,隨便定一個點,然后通過這個點水平劃一條線,先數數看這條橫線和多邊形的邊相交幾次,(或者說先排除那些不相交的邊,第一個判斷條件),然后再數這條橫線穿越多邊形的次數是否為奇數,如果是奇數,那么該點在多邊形內,如果是偶數,則在多邊形外。詳細的數學證明這里就不做了,不過讀者可以自行畫多邊形進行驗證。

       

      ^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^

      歡迎來我的淘寶店【老李飛充】,話費充值優惠靠譜,http://chinatrust.taobao.com

      ^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^

      posted @ 2015-06-21 10:25  學知行者  閱讀(1178)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲美女厕所偷拍美女尿尿| 国产一区二区在线有码| 日本高清在线观看WWW色| 国产一区在线播放av| 亚洲十八禁一区二区三区| 国产美女被遭强高潮免费一视频| 亚洲精品久久久久国色天香| av老司机亚洲精品天堂| 亚洲黄色成人网在线观看| 亚洲欧美在线一区中文字幕| 深夜精品免费在线观看| 囯产精品久久久久久久久久妞妞 | 扬州市| 欧洲性开放老太大| 丝袜美腿亚洲综合在线观看视频| 推油少妇久久99久久99久久 | 少妇被粗大的猛烈进出| 国精品午夜福利不卡视频| 97成人碰碰久久人人超级碰oo| 精品国产乱码久久久久夜深人妻| 在线观看无码不卡av| 国产日产欧美最新| 久久综合色最新久久综合色| 中文字幕国产精品综合| 狠狠躁夜夜躁人人爽天天5| 无码人妻斩一区二区三区| 国产网友愉拍精品视频手机 | 精品乱码一区二区三四五区 | 四虎国产精品永久在线下载| 亚洲av中文一区二区| 欧美熟妇性XXXX欧美熟人多毛| 兰考县| 91精品午夜福利在线观看| 国内精品人妻一区二区三区 | 亚洲精品国产第一区二区| 国产AV影片麻豆精品传媒| 少妇被粗大的猛烈进出视频| 日韩有码中文字幕国产| 新久久国产色av免费看| 精品一区二区不卡无码AV| 男人又大又硬又粗视频|