Java Path2d封闭形状的表面积

Java Path2d封闭形状的表面积,java,path,area,Java,Path,Area,我需要确定正确封闭的Path2d形状中的正确区域,该形状可以包含曲线段、直线段等 Area类处理并集、减法等,我很惊讶它没有提供复杂形状的表面积。编写自己的方法,并在需要时使用它们 例如: 三角形的面积等于: public double getArea() { double area = 0.0; double halfPerimeter = getPerimeter() ; area = Math.sqrt(halfPerimeter*(halfPerimeter-si

我需要确定正确封闭的Path2d形状中的正确区域,该形状可以包含曲线段、直线段等


Area类处理并集、减法等,我很惊讶它没有提供复杂形状的表面积。

编写自己的方法,并在需要时使用它们

例如:

三角形的面积等于:

public double getArea() {
    double area = 0.0;
    double halfPerimeter = getPerimeter() ;
    area = Math.sqrt(halfPerimeter*(halfPerimeter-side[0])*
    (halfPerimeter-side[1])*(halfPerimeter-side[2])) ;
    return area;
}
以及圆的面积:


以此类推。

这并不能回答问题,即如何找到复杂形状的面积。我认为对于每个形状,甚至是复杂形状,我们都有一种方法可以从数学上获得其面积,我展示了两个二维形状的示例,只是为了澄清这一点。谢谢伊沙兰。如果我错了,请纠正我-您只是说要区分Path2d的每个分段,然后对每个分段形状进行计算,但VGR是正确的,因为复杂形状中可能存在重叠区域。这就是你的方法会失败的地方。我的想法是,如果形状的面积可以通过数学计算得到,那么我们可以将其转换为代码。看来我没有正确地回答你的问题。。很抱歉:没有道具-你在正确的轨道上,但你的例子只是解决它的一部分。我只是想自己解决这个问题。我的想法是使用PathIterator在Path2d中进行迭代,并应用上面提到的方法,这是确定Path2d中的曲线是否属于复杂形状区域的困难部分。这应该考虑到最后一步,在这一步中,可以在计算中增加或减少弯曲面积。希望这是有道理的。
public double getArea() {
    double area = 0.0;
    area = (Math.PI * Math.pow((diameter/2),2 ));
    return area;
}