在前一篇中,我們**了如何求凸多邊形中的似最大圓,但是針對實際情況需求,我們並沒有完全解決問題。實際情況中,凹凸多邊形同時存在,並且在行政區劃應用上,凹多邊形更多。所以這裡我們依然得**如何在任意多邊形中得出其內部的似最大矩形或者似最大圓。
這裡,我們將方向優先選擇為求似最大矩形,原因有二:矩形的判斷不涉及運算,效率更高;更重要的原因是,之後我們構建r樹索引,基於矩形會更加便捷。
在我之前的文章《網格索引判斷點麵關係的方法》(提到了gis中常用的網格方法。同樣,這裡我將把該網格法的思路引入至演算法中。
具體描述為:
a.獲取任意多邊形的四角座標,通過四角座標構造矩形,將該矩形劃分成n*m個規則格網。
b.遍歷所有格網,判斷每個格網和多邊形的包含關係。格網在多邊形中,則標記為1,否則為0。
c.計算由0和1組成的矩形中,由1組成的最大矩形。
d.求得所得最大矩形代表的四角座標,構造成真實地理矩形。
a.該演算法最大的難點在於計算由0和1組成的矩形中,由1組成的最大矩形:
b.該演算法獲取的矩形是否為最大取決於網格的劃分粒度,實際專案中,要進行綜合考慮。實際上,只要能夠逼近,是否最大不重要。
昨天乙個朋友問了乙個相似的問題,專案背景為土地利用分析,需要提取任意規劃土地內一平方公里的樣本。
利用網格的思想,該問題同樣能很好的解決。
一種求任意多邊形內部水平方向似最大矩形的演算法
在前一篇中,我們 了如何求凸多邊形中的似最大圓,但是針對實際情況需求,我們並沒有完全解決問題。實際情況中,凹凸多邊形同時存在,並且在行政區劃應用上,凹多邊形更多。所以這裡我們依然得 如何在任意多邊形中得出其內部的似最大矩形或者似最大圓。這裡,我們將方向優先選擇為求似最大矩形,原因有二 矩形的判斷不涉...
求任意多邊形面積
首先宣告乙個概念 三角形外積 把向量外積定義為 a b a b sin a,b 方向根據右手法則確定,就是手掌立在a b所在平面的向量a上,掌心向b,那麼大拇指方向就是垂直於該平面的方向,被規定為外積 的方向。又根據三角形的面積公式 s 0.5 a b sin s 0.5 a b 上書中給出定理 任...
求任意多邊形的面積
輸入乙個點列,順序連線成乙個封閉多邊形,計算多邊形的面積。思路 求多邊形的面積可以使用叉乘求面積。設多邊形有n個頂點,用陣列將其存起來,其餘各點均與第乙個點連起來,這樣從逆時針方向來看,每兩個點構成乙個三角形,在使用叉乘來求的面積。有一點需要明確一下,每一次使用叉乘求面積,不能加絕對值,因為每一步叉...