用DE 9IM判斷二維空間位置關係

2021-08-29 08:48:40 字數 1666 閱讀 4601

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 三個整數...