de-9im:the dimensionally extended nine-intersection model
要使用de-9im首先要建立幾何物件的interior,boundary和exterior。首先boundary是指對幾何進行一次降維之後得到物件,舉例來說乙個點的boundary為空,未封閉的線的boundary為其兩個端點,封閉線的boundary為空,多邊形的boundary為它的環狀邊界。interior是指幾何物件的邊界被移除之後剩下的部分。exterior則是指不在boundary和interior中點構成的幾何物件。
約定:以i(a),b(a),e(a)表示幾何物件a的interior,boundary和exterior,以dim(a)表示幾何物件的維度,在二維空間中他的取值為,其中-1代表空。為了便於表示,用下面一些符號來表示取值的集合:
t :
f :
* :
0 :
1 :
2 :
那麼就可以用這樣乙個矩陣來判斷幾何物件a和b的位置關係:
interior
boundary
exterior
interior
dim(i(a)∩i(b))
dim(i(a)∩b(b))
dim(i(a)∩e(b))
boundary
dim(b(a)∩i(b))
dim(b(a)∩b(b))
dim(b(a)∩e(b))
exterior
dim(e(a)∩i(b))
dim(e(a)∩b(b))
dim(e(a)∩e(b))
另外,將零維物件簡寫為p,一維物件簡寫為l,二維物件簡寫為a。
根據這個矩陣的值可以構造乙個字串,這個字串稱為intersectionpattern。另外jts中的intersectionmatrix也封裝了這個矩陣。
以下是幾個預定義的空間關係
equal兩個幾何物件完全相同,它的定義表示為de-9im即"tffftffft"
disjoint兩個物件的邊界和內部都沒有任何公共部分,表示為de-9im是"ff*ff****"
intersectiondisjoint取反
touches簡單地說touches表示兩個物件的邊緣相接觸,這個關係是以下幾類幾何物件間特有的:a/a, l/l, l/a, p/a ,p/l。用de-9im表示,可以為"ft*******", "f**t*****"或"f***t****"
crossescrosses表示乙個物件穿過另乙個物件,它應用於p/l, p/a, l/l和l/a之間。用de-9im表示為:"t*t******"(p/l, p/a,l/a),"0********"(l/l)
within包含於。de-9im表示:"t*f**f***"
overlaps相疊,應用於a/a, l/l 和p/p之間。de-9im:"t*t***t**"(a/a, p/p),"1*t***t**"(l/l)
contains包含,對立於within。
jts的geometry類實現了以上的所有方法,而由於這些方法不能表示全部的空間位置關係,因此ogc的****** feature specification和jts都提供了乙個relate方法,用來測試指定的de-9im關係。
GEOS庫學習之三 空間關係 DE 9IM和謂詞
要判斷兩個多邊形的關係,實際上屬於幾何圖形空間關係判斷。幾何圖形並不只有多邊形一種,它包括點 線 面構成的任何圖形,兩兩之間相互關係也有很多種,因此空間關係非常複雜。根據前人的研究,總結出了de 9im模型,作為一種空間關係判斷的標準。de 9im,全稱是dimensionally extended...
NO 9判斷整數序列是不是二元查詢樹的後序遍歷結果
題目部落格 題目 題目 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 11 因此返回true。如果輸入7 4 6 5,沒有哪棵樹的後序遍...
PTA P9 中序遍歷樹並判斷是否為二叉搜尋樹
對給定的有n個節點 n 0 的二叉樹,給出中序遍歷序列,並判斷是否為二叉搜尋樹。題目保證二叉樹不超過200個節點,節點數值在整型int範圍內且各不相同。輸入格式 第一行是乙個非負整數n,表示有n個節點 第二行是乙個整數k,是樹根的元素值 接下來有n 1行,每行是乙個新節點,格式為r d e 三個整數...