Fragensteller
Graph mit diversen punkten erstellen (besser: Punkte im graphen verschieben)

Allgemeine Diskussion
-
Hallo.
ich hoffe ich kann verständlich erklären, was ich will.
Variante1:
mehrere felder in denen ich Werte eingeben kann. Diese Werte sind y-Werte einer tabelle/graphen
daraus soll das Programm einen Graphen zeichnen in dem die Punkte dann auch verbunden sind. (gerne auch mit eigens erstellter Funktion zur interpolation zwischen den Werten).
variante 2:
Ähnlich der V1, nur das die einzelnen Punkte in dem Graphen via Dragand Drop mit der Maus bewegt werden können und die y- Werte dann übernommen werden (Also die, welche man sonst per Hand eingibt.
Im grunde sind das variablen Werte, die später in einem C-Code verwendet werden.
Sie dienen beispielsweise der ausgabe an I/O-Pins eines Mikrocontroller, nur das dessen einstellung über diese GUI komfortabler ist, als direct im C.Code zu Tippen.
Somit währe es auch gut, wenn man einen button drücken kann und dann die Werteänderungen in eine textdatei (also in den C-Code für den Controller) Übernommen werden.
Im grunde könnte man dann das Kompilieren usw noch einfügen, das sind ja dann aber nur Programmaufrufe mit Befehlsübergabe, das ist dann kein problem.
Wam Besten das die V2.
Wenn Ihr da Beispiele oder hilfen zu habt, währe ich euch Dankbar
P.S.: Bin bissl C# neuling
- Typ geändert Robert Breitenhofer Donnerstag, 2. Februar 2012 16:40 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
Zum Zeichnen der Punkte (nach V1) würde sich eventuell zunächst empfehlen, den Nullpunkt des Controlls, in das du Zeichnen Willst, zu verschieben. Dadurch sparst du dir, sofern du die Werte zum Zeichnen Negiertst, ein wenig rechnerei. Zum verschieben des Nullpunktes verwendest du die Methode TranslateTransform des Graphics Objects.
//Graphics Objekt Erzeugen Graphics g = this.panel1.CreateGraphics(); //Mittelpunkt verschieben g.TranslateTransform(0, this.panel1.ClientSize.Height -10); //Werte aus Formular Zeichnen lassen g.FillEllipse(Brushes.Black, 10, (Convert.ToInt32(this.textBox1.Text) * -1), 5, 5); g.FillEllipse(Brushes.Black, 30, (Convert.ToInt32(this.textBox2.Text) * -1), 5, 5); g.FillEllipse(Brushes.Black, 50, (Convert.ToInt32(this.textBox3.Text) * -1), 5, 5); //Liste mit Punkten erstellen List<Point> punkt = new List<Point>(); punkt.Add(new Point(12,(Convert.ToInt32(this.textBox1.Text) * -1))); punkt.Add(new Point(32, (Convert.ToInt32(this.textBox2.Text) * -1))); punkt.Add(new Point(52, (Convert.ToInt32(this.textBox3.Text) * -1))); //Punkte in der Liste mit einer Linie verbinden g.DrawLines(Pens.Black, punkt.ToArray()); //Graphics Objekt wieder freigeben g.Dispose();
Das ist jetzt nur mal ganz spartanisch. Es findet weder eine Überprüfung statt, ob die Werte korreckt sind, noch wird eine Skala, etc. angegeben, nach der die Position der Punkte berechnet wird.
Ich geb erlich zu, dass ich mit der Graphikprogrammierung noch nicht alzugut aukenne, aber für Version 2 denke ich, dass du die Punkte am besten in einer Liste (würde ich oben ebenfalls empfehlen, auch beim Zeichnen der Punkte, nicht erst beim Linien zeichnen) zwischenspeicherst und dann über die MouseDown Event des Panels oder in was auch immer du Zeichnen willst, abfängst und überprüftst, ob an dieser Stelle ein Punkt liegt. falls ja, kannst du dann im MousUp Event die Koordinaten des Punktes ändern und den graphen neu Zeichnen lassen.
Chrissoftan Freeware - Live is Binary- Bearbeitet Chrissoftan Samstag, 21. Januar 2012 10:40
-
****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.