Probleme mit Zeichenobjekte - contains

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich arbeite an einen Zeichenprogramm, komme aber an folgenden Stelle(n) nicht weiter:
1, Wenn ich mehrere Objekte ineinander male und das innerste Objekte selektiere, werden alle Objekte hervorgehoben, das soll aber nicht sein.
2. wie könnte vorgehen, wenn der Nutzer in einen Bereich klickt, wo sich die Objekte überschneiden? Die Objekte dürfen sich überlappen.

Bei den zur Verfügung stehenden Zeichenobjekten handelt es sich um Rechtecke (auch mit runden Ecken), Kreise, Linien (Vektoren) und Gruppen. Jede dieser Klassen verfügt eine Methode, die auflöst, ob ein gegebener Punkt innerhalb des Objektes liegt - ich nutze hierfür die Methode contains(x) - z.B. in der Klasse Rechteck habe ein Objekt der Klasse Rectangle recht und nutze von diesen Objekt die contains - Methode.
Das Objekt Gruppe ist einfach eine Sammlung von Objekten von Typ Rechteck, Kreise, Linien und die Methoden der Klasse Gruppe rufen einfach die Methoden der Bauteile auf.
Ein kleiner Tipp wäre schon hilfreich.
 
Du probierst alle Objekte durch, ob die Maus drin ist? Dann brich diese Schlaufe einfach ab, sobald ein selektiertes Element gefunden wird.
 
Als Lösung vom Problem zwei ganz gut. Für Problem 1 absolut ungeeignet.
 
Ja Gast

Für das andere müsste man wissen, wie du bestimmst, welches Element selektiert ist.
Am einfachsten wäre wohl eine boolsche Variable in diesen Objekten, welche angibt, was selektiert ist, und was nicht (und bei einem Mausklick entsprechend neu setzen).
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben