Java:概述多个形状

时间:2012-05-02 12:50:41

标签: java graphics shape outline

假设我画了两个30像素半径和20像素的圆圈。你会得到一条交叉线。如何防止这种交叉?

我已经尝试过查看各种图形过滤但我找不到合适的东西。

(此问题不限于2个圆圈)

1 个答案:

答案 0 :(得分:3)

您可以使用java.awt.geom.Area类来执行操作。它有 add(),intersect(),subtract()方法。

创建一个区域(两个椭圆的总和)并减去另一个区域(两个椭圆的交点)。


工作代码:

int x = 200; int y = 200;
Ellipse2D.Double first = new Ellipse2D.Double(x,y,75,75);
Ellipse2D.Double second = new Ellipse2D.Double(x+25,y,75,75);
Area circles = new Area(first);
circles.add(new Area(second));

graphics2D.draw(circles);

Two Circles