# grafische objekte erstellen und bewegen



## MrG (27. Jul 2010)

Hallo,

ich frage mich, wie Programme funktionieren, bei denen man grafische Objekte mit der Maus bearbeitet, z.B. GeoGebra, JOSM, ....

Wie funktioniert z.B. ein Programm, bei dem der Benutzer z.B. ein Dreieck auf einer Zeichenfläche erzeugen und es später mit der Maus verschieben kann.

Wie entscheidet das Programm, ob die Dreiecksfläche geklickt wurde oder nicht?

Bei einem Rechteck kann ich mir noch vorstellen, zu untersuchen, ob die Klick-Koordinaten innerhalb der Fläche des Rechteckes sind, bei einem Dreieck ist das schon schwieriger und bei einer unregelmäßigen Figur ???

Ihr seht, von Grafikprogrammierung habe ich noch keine Ahnung.

Vielen Dank für jeden Tipp!

Beste Grüße


----------



## Sued_Faust (27. Jul 2010)

Moin,

soweit ich weiß, kannst du grafischen Objekten mit der Methode "Drag and Drop" neu platzieren. Da eine z.B. Gezeichnete Linie nix anderer als ein Objekt ist, gibt es wohl noch die möglichkeit dem Objekt eine art radius mitzugeben. Das bedeutet das gezeichnete Objekt kann zum Beispiel noch zum verschieben ausgewählt werden, wenn du wenige mm daneben klickst.
Hoffe du kannst dir das durch meine erklärung ein wenig vorstellen.

Gruß!


----------



## Michael... (27. Jul 2010)

DnD ist doch eher zum Verschieben von Inhalten aus einer Komponente in eine andere gedacht?

Wenn die Position, Ausrichtung und Größe der auf einer Fläche gezeichneten Objekte bekannt sind kann man ja berechnen/ermitteln ob ein Mausclick auf einem solchen Objekt gemacht wurde - unabhängig von deren Form. Bei komplexen Formen bietet sich u.U. an eine BoundingBox (Rechteck, welches das Objekt umschliesst) zu verwenden, um erstmal "grob" zu ermitteln, ob der Mausclick für das Objekt relevant sein könnte.


----------



## Marco13 (27. Jul 2010)

Ansonsten mal die Methode Polygon#contains ansehen...


----------



## KrokoDiehl (27. Jul 2010)

Für die Frage, ob etwas angeklickt wurde, gibt es durchaus mehrere Möglichkeiten. Die erste ist die von _Michael..._ erwähnte Bounding Box. Aber letztlich ist es normale Geometrie mit der Frage "Liegt Punkt X in einem Polygon?".
Manchmal geht es auch über andere Informationen, zB die Hintergrundfarbe. Wie komplex man das Thema angeht liegt wohl stark daran, wie komplex die Anwendung / Funktionalität werden soll.


----------

