当前位置: 首页 > 面试题库 >

如何计算java.awt.geom.Area的面积?

马天逸
2023-03-14
问题内容

我正在寻找一种方法来计算的任意实例的面积(以像素为单位)java.awt.geom.Area

背景:我Shape的应用程序中可能存在可能重叠的。我想知道一个Shape重叠的部分。的ShapeS可以是歪斜的,旋转,等等。如果我有一个函数area(Shape)(或Area),我可以使用的两个交叉点Shape就像这样:

double fractionObscured(Shape bottom, Shape top) {
    Area intersection = new Area(bottom);
    intersection.intersect(new Area(top));
    return area(intersection) / area(bottom);
}

问题答案:

一种方法是使用合适的方法fill()分别缩放和变换
Shape为不同的颜色,AlphaComposite并计算基础像素中的重叠像素Raster

附录1:使用此计算器查看效果,AlphaComposite.Xor表明任意两种不透明颜色的间隔为零。

附录2:计数像素可能会导致性能问题;采样可能会有所帮助。如果每个
Shape都是合理凸的,则有可能根据intersect()面积与Shapes’
的面积之和的比率来估计重叠getBounds2D()。例如,

Shape s1, s2 ...
Rectangle2D r1 = s1.getBounds2D();
Rectangle2D r2 = s2.getBounds2D();
Rectangle2D r3 = new Rectangle2D.Double();
Rectangle2D.intersect(r1, r2, r3);
double overlap = area(r3) / (area(r1) + area(r2));
...
private double area(Rectangle2D r) {
    return r.getWidth() * r.getHeight();
}

您可能需要凭经验验证结果。



 类似资料:
  • 本文向大家介绍如何计算硒页面中的帧数?,包括了如何计算硒页面中的帧数?的使用技巧和注意事项,需要的朋友参考一下 我们可以通过下面列出的方法计算硒中的帧数- 借助具有标签名frame / iframe的List <WebElement>。 借助Javascript执行器。 示例 带标记名。 示例 使用Javascript执行器。

  • 在scikit learn中,您可以使用 我只对曲线中假阳性率小于0.1的部分感兴趣。 给定这样一个阈值假阳性率,如何仅计算阈值以上曲线部分的AUC? 以下是一个具有多条ROC曲线的示例,用于说明: scikit学习文档展示了如何使用roc_曲线 有没有一种简单的方法可以从这个到部分AUC? 似乎唯一的问题是如何计算fpr=0.1时的tpr值,因为roc_曲线不一定给出该值。

  • 问题内容: 当我在实现接口的Eclipse中创建Java类时,收到警告 可序列化的类ABCD没有声明类型为long的静态最终serialVersionUID字段 因此,当我单击警告时,我在Eclipse中获得了一个选项 添加生成的序列号ID 选择该选项后,Eclipse会自动为我创建一个变量。 现在我想知道该数字是在什么基础上生成的。这是一个随机数吗?我可以提供自己的随机数吗? 问题答案: 它是根

  • 问题内容: 在JavaScript中,有没有一种方法可以计算整个页面上有角度的手表的数量? 我们使用Batarang,但它并不总是适合我们的需求。我们的应用程序很大,我们对使用自动化测试来检查手表计数是否增加过多感兴趣。 在每个控制器的基础上计数手表也将很有用。 编辑 :这是我的尝试。它在ng-scope类中将手表计入所有内容。 问题答案: (您可能需要更改为或放置在任何位置) 感谢erilem指

  • 总结: 我试图在r中计算大量多边形的面积。我读过几篇关于如何做的文章(例1 扩展说明: 我实际上是在计算澳大利亚维多利亚州的房产面积。多边形表示这些属性。我从Spatial Datamart下载了所有维多利亚州的VicMaps简化模型1和2。然而,考虑到形状文件的大小,我不得不将搜索范围缩小到一个地方政府区域(LGA),并计算多边形区域(仅用于测试)。形状文件为15.5MB。 这是有效的,但它不是

  • 由于hive只支持从类集中的子查询,如select*from(subquery),也只支持equjo,因此我们如何从表中计算累积工资,如表员工有记录如下。 因此输出应该如下所示 我怎么能在蜂巢里做到这一点