2012-05-02 73 views
1

说我绘制了两个30像素半径和20像素分开的圆圈。你会得到一个交叉线。我怎样才能防止这种交叉?Java:制作多个形状的轮廓

我试过看着各种图形过滤,但我没有找到任何合适的东西。

(这个问题并不限于2圈)

回答

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

+0

和我将如何再画这个新的领域? –

+1

它是Shape,所以使用Graphics2D的public void draw(Shape s)方法传递结果区域。 – StanislavL

+0

啊,当然,形状绘图是Graphics2D。嗯,它似乎没有工作。它仍然绘制两个圆圈,因为它们将分开绘制。让我在问题中检查这一点。 –