假设我画了两个半径为 30 像素、相距 20 像素的圆。你会得到一个交叉线。我怎样才能防止这种交叉?
我试过查看各种图形过滤,但没有找到合适的。
(本题不限2圈)
您可以使用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);