0

好的,所以我有许多多边形(在图像中以白色勾勒)。

为了尝试将所有多边形加在一起以获得一个多边形,这是所有多边形的外部边界,我将每个多边形(java 类)转换为一个区域(java 类),然后将这些区域与由 Area 类提供的 add(Area a) 方法。

从那里我将该区域转换回多边形并将其绘制为填充多边形(图像中的紫色区域)。

然而,这不是我所期待的。谁能想到我可以正确地做到这一点,或者至少只是将三角形区域添加到我的多边形中?

当我用填充绘制所有单独的多边形时,我得到了我想要的(绘制)但我需要它的多边形表示。

我想要的是

4

1 回答 1

0

我可以推荐使用JTS。只需创建要组合的几何图形并使用联合方法。之后,您可以使用新的几何图形并使用以前的代码对其进行绘制。联合的简单代码示例:

// build polygon p1
Polygon p1 = new GeometryFactory().createPolygon(new Coordinate[]{new Coordinate(0,0), new Coordinate(0,10), new Coordinate(10,10), new Coordinate(10,0), new Coordinate(0,0)});
// build polygon p2
Polygon p2 = new GeometryFactory().createPolygon(new Coordinate[]{new Coordinate(0,0), new Coordinate(0,30), new Coordinate(5,30), new Coordinate(5,0), new Coordinate(0,0)});
// calculate polygon3 as the union of p1 and p2
Polygon p3 = (Polygon) p1.union(p2);
// print simple WKT
System.out.println(p3.toText());

这种情况下的输出是(如预期的那样):

POLYGON ((0 0, 0 10, 0 30, 5 30, 5 10, 10 10, 10 0, 5 0, 0 0))
于 2016-07-11T07:14:34.153 回答