青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

socketref,再見!高德

https://github.com/adoggie

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

常用鏈接

留言簿(54)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 GIS中的計算幾何


GIS是一個圖形系統,必然會涉及到幾何學的理論應用,比如,圖形可視化,空間拓撲分析,GIS圖形編輯等都需要用到幾何

。向量幾何是用代數的方法來研究幾何問題,首先,請大家翻一翻高等數學里有關向量的章節,熟悉一下幾個重要的概念:

向量、向量的模、向量的坐標表示、向量的加減運算、向量的點積、向量的叉積,以及這些概念的幾何意義...下面我們將用

這些基本概念來解答GIS中一些幾何問題。
1   點和線的關系

        點是否在線段上,這樣的判斷在圖形編輯,拓撲判斷(比如,GPS跟蹤點是否跑在線上)需要用到這樣的判斷。通常的

想法是:先求線段的直線方程,再判斷點是否符合這條直線方程,如果符合,還要判斷點是否在線段所在的矩形區域(MBR)內

,以排除延長線上的可能性,如果不符合,則點不在線段上。這種思路是可行的,但效率不高,涉及到建立方程,解方程。

借助向量的叉積(也叫向量的向量積,結果還是向量,有方向的)可以很容易的判斷。設向量a=(Xa,Ya,Za)  b=(Xb,Yb,Zb) 

向量叉積a X b如下:

二維向量叉積的模 |a X b|=|a|*|b|*sinα=|Xa*Yb-Ya*Xb| (α是向量a,b之間的夾角),向量叉積模的幾何意義是以向量a,b

為鄰邊的平行四邊形的面積。可以推測:如果兩向量共線,向量叉積模(所代表的

平行四邊形的面積) 為零 則                      
|a X b|=|a|*|b|*sinα=|Xa*Yb-Ya*Xb|=0,否則不共線,叉積的模為非零,根據這樣條件可以很輕松的判斷點和線的關系,避

免了建立方程和解方程的麻煩。
 

        向量叉積的模|AB X AC|=0即可判斷C點在AB所確定的直線上,再結合C點是否在AB所在的MBR范圍內,就可以最終確

定C是否在AB線段上。關于點和線段的其他關系,都可以通過叉積的求得,比如 判斷點在線的哪一側,右手法則,可以通過a

X b= (Xa*Yb-Ya*Xb)*k中的(Xa*Yb-Ya*Xb)正負來判斷。留給大家思考,很簡單的,呵呵…
2   線和線的關系
        判斷兩條線段是否相交,在很多拓撲判斷和圖形編輯 (比如,線的打斷來構建拓撲,編輯線對象,疊置分析,面與

面關系的判斷等) 中都需要用到線線相交的判斷,如果兩條線段相交,一條線段的兩端點必然位于另一條線段的兩側(不考

慮退化情況,也就是一條線段的端點在另一條線段上,這個很容易判斷)
 

兩向量的叉積a X b= (Xa*Yb-Ya*Xb)*k ,分別判斷AB X AC的方向與AB X AD的方向是否異號,再判斷CD X CA 的方向與CD X

CB的方向是否異號,即可判斷兩線段是否相交。

退化情況,即一條線的端點落在另一條線上。運用”點是否在線段上”的方法來判定。詳細區分留給大家思考。呵呵…
        利用向量的方向還可以判斷線段的轉向,這個在道路導航中有所應用:
3   點和面的關系

在各種拓撲判斷中(比如,面對象的選取,包含關系的判斷等)需要判斷一個點是否位于某個面內,經典的方法就是“垂線法

”,在直角坐標系中,從這個點向X軸作射線,判斷射線與多邊形的交點個數(不考慮退化情況,退化情況下,判斷點或者射

線與多邊形端點或者邊的關系),如果為奇數,則點在面內,為偶數,則點在面外。
4    線和面的關系

線面關系的判斷相對比較復雜,線在面內,線和面相交,相離,相接等關系。線段在面內,第一個必要條件是,線段的兩個

端點都要在內。但由于多邊形可能為凹,所以這不能成為判斷的充分條件,于是有第二個必要條件線段與多邊形的邊,沒有

內部交點。

        線段和多邊形交于線段的兩端點并不會影響線段是否在多邊形內;但是如果多邊形的某個頂點和線段相交,還必須

判斷兩相鄰交點之間的線段是否包含于多邊形內部,如果在面內,則線段在面內,否則不在面內。
 

所以,算法思路如下(本算法引用網絡上一篇文章):

     if 線段PQ的端點不都在多邊形內
        then return false;
    點集pointSet初始化為空;
      for 多邊形的每條邊s
        do if 線段的某個端點在s上
             then 將該端點加入pointSet;
           else if s的某個端點在線段PQ上
             then 將該端點加入pointSet;
           else if s和線段PQ相交 // 這時候已經可以肯定是內交了
             then return false;
    將pointSet中的點按照X-Y坐標排序;
      for pointSet中每兩個相鄰點 pointSet[i] , pointSet[ i+1]
        do if pointSet[i] , pointSet[ i+1] 的中點不在多邊形中
             then return false;
      return true;

注:X-Y坐標排序,X坐標小的排在前面,對于X坐標相同的點,Y坐標小的排在前面,這種排序準則也是為了保證水平和垂直

情況的判斷正確。

1.       點在面內,線段相交情況的判斷見上面的思路。

2.       這個過程中的排序因為交點數目肯定遠小于多邊形的頂點數目n,所以最多是常數級的復雜度,幾乎可以忽略不計

。因此算法的時間復雜度也是O(n)。

3.       有了線段和面的關系,再判斷折線與面的關系,也就可以for循環,同理進行判斷了,但時間復雜度將是O(n^2)。

后面將介紹一種時間復雜度為O(nlogn)的”平面掃描算法”。

5    面和面的關系

面面的空間關系,可能要更復雜一些,在拓撲判斷,多邊形疊置分析,面對象的編輯中,有著廣泛的應用。這個將在以后的

章節中介紹一種時間復雜度為O(nlogn)的算法“平面掃描算法”。
6    點到線段的距離
        點到線段的距離,在各種測量,拓撲判斷(比如,線對象的選取中需要比較距離)中都需要用到。大家對點到直線的

距離,都很熟悉,那點到線段距離又該如何計算呢?
 
        問題的關鍵是判斷a、r的角度,向量的點積能判斷一個角是鈍角還是銳角,先復習一下向量的點積,也叫向量的數

量積,結果是一個數,沒有方向。設向量a=(Xa,Ya,Za)  b=(Xb,Yb,Zb) 

a . b=|a|*|b|*cosα=Xa*Xb+Ya*Yb+Za*Zb 向量點積的幾何意義是,高中物理中,求作用力在一個方向上所作的功。如果a .

b>0,則α為銳角,a . b<0,則α鈍角。

熟悉了利用向量的點積來判斷角度,AC·AB 判斷夾角a,BA·BC判斷夾角r,即可確定三種情況中,具體是哪一種。至于第一種

情況,求點到垂足的距離,可以饒開建立方程求垂足,再求兩點距離的思路,因為建立方程運算是復雜的,多耗了CPU資源。

利用向量叉積的幾何意義來求,向量的叉積表示以兩向量為鄰邊的平行四邊形的面積,|AC X AB|為⊿ABC的面積的兩倍,求

平行四邊形的高,只要用面積除以底邊AB的長度。即,高CD的長度=|AC X AB|/distance(AB)。

這些復雜的幾何判斷,都將在空間索引的過濾下,在少量數據集(侯選集)上進行。計算幾何算法,通常是比較復雜,比較耗

CPU資源,而且還要考慮各種退化情況,在這里,并不試圖向大家窮舉各種情況,只想起一個拋磚引玉的作用, 或許還有人

會有這樣的疑慮:有沒考慮“投影”的問題?關于投影將在相應的章節中給予解釋,但有一點是可以肯定的,空間分析、計算

幾何算法,都是在平面直角坐標系下運算的,不會在球面上。


posted on 2010-11-12 15:59 放屁阿狗 閱讀(882) 評論(0)  編輯 收藏 引用 所屬分類: Math

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线一区视频| 久久免费黄色| 国产一区二区三区不卡在线观看| 欧美日韩精品一本二本三本| 欧美日韩中文字幕| 国产精品推荐精品| 精品1区2区3区4区| 亚洲承认在线| 亚洲免费高清视频| 亚洲欧美一级二级三级| 久久九九国产精品| 亚洲国产精品视频| 中文av一区特黄| 一区二区激情视频| 一本在线高清不卡dvd| 亚洲精品国产精品乱码不99 | 欧美亚洲综合网| 久久综合久久综合九色| 亚洲成人在线视频网站| 一本一道久久综合狠狠老精东影业| 亚洲中午字幕| 美国成人直播| 国产精品一级久久久| 亚洲国产精品日韩| 亚洲男人的天堂在线aⅴ视频| 久久男人资源视频| 亚洲美女一区| 免费观看日韩av| 国产欧美一区二区三区在线老狼 | 欧美专区在线观看一区| 欧美成人激情在线| 亚洲欧美成人一区二区三区| 免费在线成人| 国产字幕视频一区二区| 亚洲一区二区伦理| 亚洲国产合集| 久久久亚洲人| 国产视频在线一区二区| 亚洲视频网站在线观看| 欧美黑人多人双交| 久久精品视频网| 国产精品区一区二区三| 一本大道久久a久久精品综合| 久热精品在线| 久久精品一区二区三区不卡| 国产精品美女在线| 这里只有视频精品| 亚洲国产精品免费| 男人插女人欧美| 亚洲电影一级黄| 久久综合伊人77777蜜臀| 亚欧美中日韩视频| 国产欧美丝祙| 欧美与黑人午夜性猛交久久久| 日韩亚洲欧美一区| 欧美午夜精品一区| 亚洲尤物精选| 亚洲免费在线电影| 国产视频观看一区| 久久久精品一区| 欧美在线视频免费| 国语对白精品一区二区| 久久久久网址| 久久噜噜噜精品国产亚洲综合| 国内外成人在线| 老牛影视一区二区三区| 欧美在线亚洲综合一区| 日韩午夜精品视频| 亚洲国产一成人久久精品| 欧美成人免费全部| 中日韩美女免费视频网站在线观看| 亚洲国产日韩在线一区模特| 欧美高清视频| 亚洲一级影院| 欧美一级视频| 亚洲国产日韩欧美在线动漫| 亚洲欧洲精品一区二区三区不卡 | 看片网站欧美日韩| 日韩亚洲欧美高清| 亚洲午夜精品久久久久久app| 国产精品永久免费视频| 久久婷婷久久| 欧美成人精品在线播放| 亚洲女人天堂av| 久久久999国产| aⅴ色国产欧美| 亚洲欧美偷拍卡通变态| 亚洲福利在线视频| 一本色道久久综合| 国产一区二区三区在线观看精品| 欧美a级片一区| 欧美午夜激情小视频| 久久久久一区二区三区| 欧美激情一区二区三区高清视频 | 亚洲少妇中出一区| 欧美亚洲视频在线观看| 亚洲精品乱码久久久久久| 这里只有精品在线播放| 国语自产偷拍精品视频偷 | 久热综合在线亚洲精品| 亚洲免费观看视频| 欧美在现视频| 中文国产一区| 久久久噜噜噜久久人人看| 宅男噜噜噜66一区二区| 久久午夜精品一区二区| 羞羞答答国产精品www一本| 久久综合伊人| 久久爱另类一区二区小说| 欧美国产视频在线| 久久久亚洲国产美女国产盗摄| 欧美另类videos死尸| 老巨人导航500精品| 国产精品婷婷午夜在线观看| 亚洲欧洲另类| 亚洲二区精品| 久久精品一二三区| 久久久97精品| 国产精品一区二区久久久| 亚洲精品乱码久久久久久蜜桃麻豆 | 日韩亚洲欧美高清| 久久激情五月婷婷| 亚洲欧美春色| 欧美日韩一区在线视频| 欧美国产综合视频| 在线不卡a资源高清| 午夜一区不卡| 欧美在线视频观看| 国产精品区一区二区三| 夜夜嗨av一区二区三区中文字幕| 亚洲国产精品视频| 久久婷婷av| 免费观看久久久4p| 激情综合网址| 久久久国产成人精品| 久久精品人人做人人爽电影蜜月| 国产精品久久久久久超碰| 一区二区三区久久精品| 亚洲一区在线观看视频 | 亚洲永久在线| 国产精品国产a| 一本色道久久精品| 香蕉国产精品偷在线观看不卡| 国产精品美女在线| 欧美亚洲视频在线观看| 久久久一区二区三区| 樱桃成人精品视频在线播放| 久久人人97超碰精品888 | 午夜精品视频一区| 久久精品女人的天堂av| 激情久久婷婷| 免费观看在线综合| 亚洲日本精品国产第一区| 在线综合+亚洲+欧美中文字幕| 国产精品videosex极品| 先锋影音网一区二区| 久久美女性网| 亚洲日本理论电影| 国产精品福利在线观看网址| 亚洲欧美视频在线| 欧美国产第一页| 亚洲午夜一二三区视频| 国产色爱av资源综合区| 久久综合久色欧美综合狠狠 | 欧美日韩国产综合在线| 亚洲视屏一区| 久久久五月天| 一区二区三区四区国产| 国产日韩欧美视频| 乱码第一页成人| 夜夜嗨一区二区| 久久亚洲欧美国产精品乐播| 亚洲精品资源| 国产欧美一区二区三区视频| 欧美jizz19性欧美| 亚洲免费在线观看视频| 欧美韩日一区二区| 久久黄金**| 一本色道综合亚洲| 狠狠色狠狠色综合日日小说| 欧美91视频| 国产欧美日韩另类一区| 麻豆精品在线观看| 亚洲欧美日韩视频一区| 亚洲经典在线| 久久久蜜桃一区二区人| 在线视频你懂得一区二区三区| 国产伦精品一区二区三区高清| 欧美高清成人| 久久天天狠狠| 欧美一级免费视频| 一区二区三区精品| 亚洲欧洲日产国码二区| 老牛嫩草一区二区三区日本 | 亚洲国产欧洲综合997久久| 国产精品第十页| 欧美精品情趣视频| 欧美 日韩 国产精品免费观看| 久久精品亚洲一区| 欧美怡红院视频|