2012-12-29 45 views
4

如何修改現有的多邊形?首先我想在它的外部添加一個Point。身材勻稱:添加新的點,已有的多邊形

poly = Polygon([(0, 0), (1, 1), (1, 0)])

我一直在尋找這樣的事情:

poly.append_at(idx=3, Point(1, -1))

但我不能找到這個產品的,甚至類似的方法。

感謝

回答

8

它沒有任何意義從Polygon的外部添加或刪除點,因爲你要重新計算poly.areapoly.length等反正。相反,從舊的多邊形的座標創建一個新的Polygon實例:

coords = poly.exterior.coords[:] 
coords[1] = (2.0, 6.0) # coordinate to change 

new_poly = Polygon(coords) 

注意,這不poly.interior佔點。

+0

添加了一個座標切片opp'[:]'使您的示例工作 –

+0

@MikeToews:重新評論下面的內容(現在可能會被刪除) - 我明白「不可變的」,但文檔中的下一個語句「父特徵是可變的,因爲它們可以被分配新的座標序列。「這就是我想要做的,分配一個新的序列。對於我所知道的,一個新的座標序列**的分配可能已經觸發了面積,質心等的重新計算。所以我認爲這個文檔在這一點上有點誤導。 – subnivean

+0

@subnivean同意了,這本手冊中的內容不清楚;看到https://github.com/Toblerity/Shapely/issues/38 –

相關問題