Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Polygon / Polylinie grafisch eingeben (https://www.delphipraxis.net/189519-polygon-polylinie-grafisch-eingeben.html)

Bjoerk 21. Jun 2016 08:56

Polygon / Polylinie grafisch eingeben
 
Ich wollte mal fragen, wie ihr ein Polygon oder eine Polylinie am "intuitivsten" eingeben würdet. Während des Zeichenprozesses soll der User die aktuelle Koordinate gleich per Editfelder o.ä. korrigieren können?
Abbruch bei Esc o.ä?
Anzahl der Ecken vorher abfragen?
Ich hab’s mir mal bei Autocad angesehen. Die machen es in etwa so. Wie könnte man das denn in Delphi umsetzen. Alles beginnt ja mit einem Canvas.MouseDown. Aber wie geht’s dann am besten weiter? :gruebel:

ibp 21. Jun 2016 09:48

AW: Polygon / Polylinie grafisch eingeben
 
man könnte zusätzlich mit den Tasten arbeiten z.B. (eines oder Kombinationen davon, kenne das so ähnlich von ArchiCAD)
"L" dann die Länge eingeben
"W" dann den Winkel
"X/Y" dann die Koordinaten
und am Schluss mit dem Maus-Klick Punkt setzen usw
oder eben nur mit der Maus und die Möglichkeit hinterher die Koordinaten korrigieren lassen.

Namenloser 21. Jun 2016 10:09

AW: Polygon / Polylinie grafisch eingeben
 
Zitat:

Zitat von ibp (Beitrag 1340686)
man könnte zusätzlich mit den Tasten arbeiten z.B. (eines oder Kombinationen davon, kenne das so ähnlich von ArchiCAD)
"L" dann die Länge eingeben
"W" dann den Winkel
"X/Y" dann die Koordinaten
und am Schluss mit dem Maus-Klick Punkt setzen usw
oder eben nur mit der Maus und die Möglichkeit hinterher die Koordinaten korrigieren lassen.

Erinnert mich an das Bedienkonzept von Blender. Das könnte man sich auch mal anschauen. Wobei die Oberfläche von Blender ja nicht gerade dafür bekannt ist, "intuitiv" zu sein. Allerdings kann man auf diese Weise sehr effizient arbeiten, wenn man sich erst mal daran gewöhnt hat.

ibp 21. Jun 2016 10:18

AW: Polygon / Polylinie grafisch eingeben
 
Die Frage ist doch, wie genau soll alles sein? Mit der Maus kann man nur auf einem Fangraster genau arbeiten, außerdem Pixel/cm spielt dann auch noch eine Rolle usw. Also was willst du mit dem Polygon machen?

stahli 21. Jun 2016 10:19

AW: Polygon / Polylinie grafisch eingeben
 
Eine wesentliche Frage ist sicher, ob die Polygone vorgegeben sind oder der User sich frei Schnauze etwas malen soll.

Im ersten Fall könnte man evtl. mit einer Tabelle arbeiten und die vorhanden Werte eingeben.

Im letzteren Fall könnte man die gesetzten Punkte selektierbar machen und in einer Art Kontextmenü oder Palette diverse Funktionalitäten zur Nutzung anbieten.

Jens01 21. Jun 2016 11:16

AW: Polygon / Polylinie grafisch eingeben
 
Ich kenns von den Abbundprogrammen bei der Eingabe von Grundrissen.
Du klicks mit der Maus die Positionen an, die werden aufgezeichnet und in einer Tabelle dargestellt. Dort kannst Du die Werte ändern. Während des Änderns ändert sich die Grafik.
Du kannst aber auch während der Eingabe wählen, ob die Werte per Klick oder über ein Eingabefeld eingegeben werden.
Während die Maus frei läuft, laufen auch die Koordinaten sichtbar mit. Dabei gibt es ein gewissen fangen. Der Mausklick ergibt dann einen sauberen Wert (keine Kommazahl).

Bjoerk 21. Jun 2016 11:54

AW: Polygon / Polylinie grafisch eingeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Soll eine Eingabe für Grundrisse sein (FEM, Siehe Anlage). Passiert zurzeit über eine Tabelle. Möchte zusätzlich eine grafische Eingabe anbieten. Halt eine sinnvolle Kombi aus grafischer und Texteingabe. Das mit den Tastenkürzeln finde ich nicht schlecht. Daß man die Koordinaten auch noch später in einem OI ändern kann ist ebenfalls vorgesehen. Winkelraster ist schon implementiert.

ibp 21. Jun 2016 12:02

AW: Polygon / Polylinie grafisch eingeben
 
soweit ich mich erinnern kann, konnte man auch die Koordinaten relativ zum letzten Punkt mittels + oder - vor der Zahl angeben, das war ziemlich praktisch.

Rollo62 21. Jun 2016 15:42

AW: Polygon / Polylinie grafisch eingeben
 
Wer Eagle CAD pcb programm kennt der weiss wie mt dem rechtsklick der winkel zum nächsten poly geändert wird. Finde ich sehr praktisch wenn es um recht oder 45°winklige linien geht.
Das funktioniert allerdings nur auf festen rastern ri htig gut.


Rollo

Bjoerk 21. Jun 2016 15:45

AW: Polygon / Polylinie grafisch eingeben
 
Nachträgliches ändern ist nicht das Problem. Es geht mir um den Current. Ich weiß ja erst mal gar nicht wie das rein technisch gehen soll? Wenn ich anfange eine Linie zu zeichnen und gehe zu einem Eingabefeld hab ich eine Line bis dahin??

bcvs 22. Jun 2016 07:24

AW: Polygon / Polylinie grafisch eingeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
In den 90ern habe ich auch mal Statikprogramme entwickelt. Damals habe ich die grafische Eingabe des ebenen Stabwerks so gelöst:

Während du die Maus bewegst, werden in zwei Editfeldern ständig die aktuellen X- und Y-Koordinaten angezeigt. Dabei kann man umschalten, ob diese Koordinaten absolut oder relativ zum letzten Punkt gelten. Damit weiß man während der Mausbewegung schon mal, wo man ist.
Das Editfeld für X hat dabei den Tastaturfocus. Um einen Punkt zu setzen kannst du jetzt entweder mit der Maus klicken oder die Koordinaten eintippen. X hat ja schon den Focus, dann gehst du mit Return oder Tab zu Y und beendest mit Return. Damit ist der Punkt gesetzt und die Linie zum nächsten Punkt hängt an der Maus.

Die Mausbewegung folgt einem Raster. Vorhandene Knoten/Endpunkte werden gefangen.

Habe es gerade nochmal rausgekramt. So sah das aus:

P_G 22. Jun 2016 08:26

AW: Polygon / Polylinie grafisch eingeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habe mal etwas ähnliches gemacht (Vektorgrafikprogramm). Meine Lösung war damals folgende: Intern habe ich eine ObjectList definiert, die ihrerseits Records aufnehmen konnte. Das Record speicherte Koordinatenpunkte (x,y,z) und jeweils eine Angabe zur Zeichenform (Polyline oder Polygon). Mit jedem Links-Klick auf einer Paintbox wurde ein weiterer Punkt aufgenommen, ein Rechts-Klick beendete die Punktaufnahme. Im OnPaint-Ereignis der Paintbox wurden die Figuren dann der Reihe nach abgearbeitet und gezeichnet, solange jeweils mehr als ein Koordinatenpunkt für Polylines oder drei Punkte für Polygone eingegeben worden waren. Die in den Records enthaltenen Koordinatenwerte konnten auch in einer Tabelle wiedergegeben und von dort aus auch verändert werden (OnChange). Allerdings konnte ich die Koordinatenpunkte auch per Maus greifen. Meines Wissens haben sämtliche User es auf diese Weise gemacht - keiner hat mit den Tabellen arbeiten wollen. Als zusätzliches Feature ließ sich auf der Paintbox ein Hintergrundbild einblenden, so dass man praktisch "durchpausen" konnte. Für geometrische Figuren gab es eine Snap-to-grid-Funktion.

Bjoerk 23. Jun 2016 06:59

AW: Polygon / Polylinie grafisch eingeben
 
Ok. Vielen Dank für die Ideen. Ich hab mich jetzt dafür entschieden, separate Punkte einzugeben, die man anschließend in einem OI ändern kann. Dadurch wird der Zeichenprozess nicht so "Spaghetti".


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz