2012-05-02 4 views
1

Dites que j'ai dessiné deux cercles de 30 pixels de rayon et de 20 pixels de distance. Vous obtiendriez un croisement de lignes. Comment puis-je empêcher ce croisement?Java: Faire un contour de plusieurs formes

J'ai essayé de filtrer différents graphiques mais je n'ai rien trouvé de convenable.

(Cette question ne se limite pas à 2 cercles)

Répondre

3

Vous pouvez utiliser java.awt.geom.Area classe pour effectuer les opérations. Il a add(), les méthodes intersect(), subtract().

Créer une zone (somme des deux ovales) et soustraire une autre zone (intersection des deux ovales).


Code de travail:

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

et comment je puis tirer cette nouvelle zone? –

+1

It's Shape utilise donc la méthode publique void draw (Shape s) de Graphics2D en passant la zone résultat. – StanislavL

+0

Ahh oui bien sûr, le dessin de forme est Graphics2D. Hmm, ça ne semble pas fonctionner. Il dessine toujours les deux cercles comme ils seraient dessinés séparément. Laissez-moi vérifier avec cela dans la question. –