2015-06-14 105 views
2

說我有兩個多邊形A和B
多邊形A在(0,0)具有分,(0,5)和(5,0)
多邊形B具有點(-2,2),(5,5)和(5,2)
我的目標是將其分割成3個不同的多邊形
多邊形1將爲多邊形A - 它與多邊形B相交處 多邊形2將是多邊形B - 它與多邊形A相交
多邊形3將是相交區域。
對於多邊形1和2,我可以使用java的geom.area.intersect方法。
我將如何去創建多邊形3?創建多邊形

+0

這比你想像的要簡單。看看[Dan Sunday的討論](http://geomalgorithms.com/a09-_intersect-3.html).... –

回答

1

多邊形1,2和3是相同的東西。 :-)

您可以通過使用intersect()來獲得區域Gamma。

然後,您可以從多邊形A中減去()區域Gamma以獲得區域Alpha(A在Gamma之外的部分),並從B減去()Gamma以獲得Beta(B區域在Gamma之外的部分)。

要從Area轉換回Polygon,請使用getPathIterator(null)爲每個Area收集頂點,然後將它們饋送到Polygon構造函數中。

+0

它的工作原理,謝謝 –