2012-05-02 106 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。嗯,它似乎沒有工作。它仍然繪製兩個圓圈,因爲它們將分開繪製。讓我在問題中檢查這一點。 –