Swing Extract Areas | intersection & contains

donluke

Neues Mitglied
Hey Leute,

ich habe ein Problem, worauf ich keine Lösung finde.
Und zwar hab ich eine ArrayList<ExtendedArea>, wobei ExtendedArea einfach eine Unterklasse(Vererbung) von java.awt.geom.Area ist. Hier habe ich ein int-Attribut "overlay" hinzugefügt. Nun möchte ich die Areas "beschneiden".

Wenn eine Area in der Liste ist: -dann soll die Area1 mit overlay= 0 zurückgegeben werden.

Wenn zwei Areas in der Liste sind, dann gibt es 3 Fälle:
(i) Area1 liegt komplett in (contained) Area2:
-Area1 (overlay=0)
-Area2 (overlay=1)
(i) Area1 schneidet (intersect) Area2: erzeugt eine neue Area, die Schnittmenge; also:
-Area1 = Area1 - Schnittmenge (overlay=0)
-Area2 = Area2 - Schnittmenge (overlay=0)
-Area3(die Schnittmenge) (overlay = 1)
(i)Area1 liegt nicht in Area2 und schneidet es auch nicht:
-Area1 (overlay=0)
-Area2 (overlay=0)
Für die Anzahl größer 3 müsste es analog gehen...

Ich hab schon zich Sachen ausprobiert, aber irgendwie bekomme ich immer die falsche Anzahl an Areas raus, oder ich habe 2Schnittmengen-Areas oder das mit dem Overlay klappt nicht ganz, etc..

Um es nochmals zu verdeutlichen: Es geht darum, dass man die Areas so beschneidet, dass wenn sich Areas überlappen, nicht 2 Schnittmengen hat, sondern nur eine Area, aber dann das overlay hochsetzt.

Kennt jmd so ein ähnliches Problem?
Ich wäre um Tipps sehr dankbar!

Auf Anfrage lade ich auch gerne meine Vorschlöge hoch, aber ich glaube, die würden eher verwirren :)

Grüße,
Lukas

Und zwar hab ich eine ArrayList<ExtendedArea>, wobei ExtendedArea einfach eine Unterklasse von java.awt.geom.Area ist. Hier habe ich dann ein int-Attribut "overlay" hinzugefügt. Dies soll dazu dienen, damit man
 

Oben