polylgon
物件是由乙個或多個
ring
物件的有序集合,它可以是由單個
ring
物件構成,也可以使用多個
ring
組成如下圖所示。其中
ring
可以分為
outer ring(外環)
和inner
ring(內環)
之分。外環和內環都是有方向的,它們的區別是外環的方向是順時針的,內環的方向是逆時針。如果多邊形只有外環,沒有內環,很好處理,難得是如何將內環和外環區分開來,並且保證正確的內外環包含關係。
前段時間做mdb資料庫的座標轉換功能,由於針對的是地方座標系,所以無法用7引數構建投影座標統一轉換。我採用的是將featurelayer中的feature乙個乙個取出來,將每個點的起始點座標取出來進行轉換,然後再組合回去。現在將多邊形部分**貼出來:
ipolygon4 polygon = pfeature.shapecopy as ipolygon4;
igeometrybag bag = polygon.exteriorringbag; //獲取多邊形的所有外環
ienumgeometry geo = bag as ienumgeometry;
geo.reset();
iring exring = geo.next() as iring;
while (exring != null)
iring ir = ring as iring;
ir.close();
ppolygon.addgeometry(ir);
inring = geos.next() as iring;
}isegmentcollection seg = exring as isegmentcollection;
isegmentcollection rings = new ringclass();
for (int i = 0; i < seg.segmentcount; i++) //處理外環
iring irr = rings as iring;
irr.close();
ppolygon.addgeometry(irr);
exring = geo.next() as iring;
}ipolygon p = ppolygon as ipolygon;
p.simplifypreservefromto(); //保證多邊形封閉
pfeature.shape = p;
pfeature.store();
通過以上的方法能夠將polygon取出來,實現自定義的座標轉換過程,由於先取出來然後再重新組合,所以效率不是很高,但是經過大資料量的驗證,表明效率能夠接受。
多邊形判斷點內外
在圖形學中判斷乙個點是否在多邊形內,若多邊形不是自相交的,那麼可以簡單的判斷這個點在多邊形內部還是外部 若多邊形是自相交的,那麼就需要根據非零環繞數規則和奇 偶規則判斷。判斷多邊形是否是自相交的 多邊形在平面內除頂點外還有其他公共點 內 外測試 不自交的多邊形 多邊形僅在頂點處連線,而在平面內沒有其...
點 多邊形內外判斷
問題情境 1.判斷點是否在人體某個部位 不規則多邊形 上 思路辨析 判斷方法有好多種,需要考慮到實用性 侷限性 和 化簡易程度。1.面積和判斷,內角和判斷 角法 等,或侷限於多邊形形狀 凹 凸 或 計算有複雜地方 弧長,角度計算 或侷限於多邊形頂點的順序問題等。2.觀察及檢驗之下,射線法 判斷奇偶 ...
演算法 點在多邊形內外判斷
射線發 射線發判斷點是否在多邊形內部 p 待判斷的點。格式 poly 多邊形定點,陣列成員格式相同 private string raycasting point p,listpoly 判斷線段兩短點是否在射線兩側 if sy py sy py tyif x px return flag in ou...