Java多边形与面积

Java多边形与面积,java,awt,polygon,java-2d,area,Java,Awt,Polygon,Java 2d,Area,好的,我有一些多边形(在图像中以白色勾勒) 为了将所有多边形添加到一起,以便得到一个多边形,即所有多边形的外部边界,我将每个多边形(java类)转换为一个区域(java类),然后使用Area类提供的add(Area a)方法将这些区域添加到一起 从那里,我将该区域转换回多边形,并将其绘制为填充多边形(图像中的紫色区域) 然而,这并不是我所期望的。有人能想到一个我能正确完成这项工作的地方吗,或者至少把三角形区域添加到我的多边形中 当我用填充画出所有独立的多边形时,我得到了我想要(画)的东西,但我需

好的,我有一些多边形(在图像中以白色勾勒)

为了将所有多边形添加到一起,以便得到一个多边形,即所有多边形的外部边界,我将每个多边形(java类)转换为一个区域(java类),然后使用Area类提供的add(Area a)方法将这些区域添加到一起

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

然而,这并不是我所期望的。有人能想到一个我能正确完成这项工作的地方吗,或者至少把三角形区域添加到我的多边形中

当我用填充画出所有独立的多边形时,我得到了我想要(画)的东西,但我需要它的多边形表示

我可以推荐使用。只需创建要组合的几何图形并使用该方法即可。之后,可以使用新几何体并使用以前的代码绘制它。union的简单代码示例:

// 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))