Laden...

Graphisches Element List Koordinaten auslesen/bearbeiten/verbinden

Erstellt von Walternativ vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.718 Views
W
Walternativ Themenstarter:in
2 Beiträge seit 2014
vor 9 Jahren
Graphisches Element List Koordinaten auslesen/bearbeiten/verbinden

Hallo,

ich lese schon einige Zeit in diesem tollen Forum. Da ich gerade nicht mehr weiter kommen und hier immer so viele Experten unterwegs sind habe ich mich registriert um Fragen zu stellen.

Mein Problem ist folgendes:
Ich schreibe eine Windows Forms GUI Anwendung. Mit der Anwendung werden kreise und Vierecke gezeichnet die durch eine Linie verbunden werden sollen. Die einschlägigen Tutorials habe ich mir durchgelesen und konnte das meiste damit auch lösen.

Mein Problem ist gerade:
1.wie ich List Elemente aus der Liste auslese respektive manipulieren kann. Um die Verbindung herzustellen benötige ich ja die X und Y Koordinaten.

2.oder ob es eine einfache Möglichkeit gibt die Kreise und Vierecke durch eine Linie zu verbinden, die auch das verschieben der Kreise und Vierecke per Maus unterstützt.

viele Grüße

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo Walternativ,

ich gehe mal davon aus, dass du auch [Artikel] Zeichnen in Windows-Programmen gelesen hast. Dort wird mit eine Liste von grafischen Objekten gearbeitet, auf die man in Paint/OnPaint auslesen kann.

Du brauchst im Grunde nur eine zusätzliche Property in Graphics-Object hinzufügen, die die Koordinaten des gewünschten Endpunkt der Verbindungslinie enthält. Bei einem Kreis (oder anderen konvexen Formen) z.B. dessen Mittelpunkt.

Wenn du zuerst alle Verbindungslinien zeichnest (natürlich musst du dir noch merken, welche Objekte verbunden werden sollen) und dann die (gefüllten) Objekte darüber, dann endet die Verbindungslinie (zumindest bei konvexen Objekten) an der Außenkante des darübergezeichneten Objekts.

Wenn das Objekt verschoben wird, muss die Koordinaten-Property nur noch entsprechenden geändert werden und schon gehen die Linien wieder an das richtige Ziel.

Im Detail kann man noch vieles verbessern(*), z.B. ein automatisches rechtwinkliges Routing der Verbindungslinien um andere Objekte oder andere Hindernisse herum. Das würde hier allerdings den Rahmen sprengen, sofern nur nicht sehr konkrete Fragen hast.

(*) Mit meinem Vorschlag hast du jedoch etwas, was relativ einfach ist und funktioniert. Du kannst dir selber überlegen, wie du das Grundprinzip abwandeln und verbessern kannst.

herbivore

W
Walternativ Themenstarter:in
2 Beiträge seit 2014
vor 9 Jahren

Hallo Herbivore,

genau unter anderem meinte ich auch diesen Artikel.

Ich arbeite auch mit der Liste aus Graphischen Objekten. Ich habe auch eine Property geschrieben die ein beliebiges Element aus der Liste bewegen kann.

Wenn ich einen Haltepunkt setzte und mir den Inhalt des Objektes anschaue gibt es auch die Property Path, die alle Werte enthält die ich brauche aber wie komme ich an die Werte ran?

Walternativ

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo Walternativ,

ich denke, es ist schwieriger, vielleicht sogar unmöglich, die Informationen aus dem GraphicsPath auszulesen. Ich denke, du musst dir alles wichtige beim Anlegen des Pfades separat selber merken.

herbivore