1

假设我画了两个半径为 30 像素、相距 20 像素的圆。你会得到一个交叉线。我怎样才能防止这种交叉?

我试过查看各种图形过滤,但没有找到合适的。

(本题不限2圈)

4

1 回答 1

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

两个圆圈

于 2012-05-02T13:07:20.193 回答