C# Werte mit Grafik im Koordinatensystem verbinden???

Rossi-X

Neuling
Thread Starter
Mitglied seit
26.06.2007
Beiträge
24
Guten Morgen,


wie oben schon angesprochen habe ich ein Problem mit C#. Für die Schule sollen wir ein Programm programmieren was nach eingabe der Stromstärke und der Spannung zum Beispiel die Leistung ausrechnet. (P=U*I). Ich kriege es aber einfach nicht hin die jeweiligen Eingaben mit einem Koordinatensystem zu verknüpfen, welches die Kurven anzeigen soll.

Kann mir dabei mal jemand helfen und mir Tipps geben?


Dazu muss ich sagen, dass es die Anfänge der Programmierung bei mir sind und ich noch nicht wirklich durchsehe.

Ich kann allerdings erst am Wochenende alles ausprobieren.

Danke schonmal im vorraus.



Gruß Rossi
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Du musst erstmal die Oben stehende Formel umstellen nach U und nach I. Dann hast du 3 Formeln. Je nachdem was eingegeben wird, zeichnest du dann mit der Entsprechenden Formel eine Kurve.
 
Klar. Für jeden Fall die Formel. Soweit ist es auch schon und wie binde ich das errechnete nun in das Koordinatensystem ein? Je nach Eingabe und Formel wird nun eine Wertetabelle erstellt. Aber wie kriege ich diese in eine Kurve implementiert?
 
ich würds so machen:

du erstellst nen canvas

dann nimm die maße des Canvas...

Beispiel: Dein Canvas ist 400pixel breit und hoch

Dann erstellst eine Forschleife die unserem fall von 0 bis 400 laufen soll, da unser Canvas ja 400 pixel breit ist. Der Schleifenzähler stellt in unserem Fall die X-Koordinate dar, so wird bei jedem Schleifendurchlauf ein Pixel gezeichnet und automatisch einen Pixel weiter nach rechts gesprungen.

Um den Y-Wert eines Punktes zu errechnen musst du den X-Wert in deine Formel einsetzen. P = I*U ... ein Wert ist die aktuelle X-Koordinate, der andere musste vorher vom benutzer festgelegt werden.

Beispiel:

Benutzer setzt I = 10A

dann läuft

P = (10 * X) - 400 (das minus 400 muss rein, da das koordinatenkreuz des canvas nicht auf gleicher Höhe ist mit dem deiner Kurve)

Hinterher musst du dann mit P und X einen Punkt zeichnen lassen.

In jedem Durchlauf wird ein neuer Wert errechnet und einen Pixel verschoben gezeichnet... und so weiter... die Schleife läuft von 0 bis 400 durch, errechnet zu jedem X-wert den Y-Wert und zeichnet ihn
 
Zuletzt bearbeitet:
Das mit den Canvas haben wir schonmal gemacht indem wir ein Schachbrett programmieren sollten. Das werd ich mal probieren.

noch ne Frage:

1. Wie kriege ich die Beschriftung des Koordinatensystems hin? also x-y Achse mit Werten bezeichnen?

2. Nach der Formel P=U*I werden die Werte ausgerechnet, allerdings mit zig kommastellen. Wie kann ich es auf drei Kommastellen runden?

3. Wie kann ich in einem Feld die Eingabe von einem Buchstaben verhindern? Momentan kann ich einen Buchstaben eingeben und wenn ich auf berechnen klicke steht dann: "Eingabe unzulässig" soweit ist es schon. Wie kann ich es von vornherein verhinder, dass man gar keinen Buchstaben eingeben kann.

Das wars erstmal. Danke schonmal!
 
zu 1.: Entweder außerhalb der Canvas (mit Labels oder sonstwas) oder direkt in die Canvas zeichnen lassen, muß man halt etwas rumfrickeln mit den Positionen.

zu 2.: Decimal.Round( Decimal, Integer )

zu 3. Entweder den String mit TryParse oder eigenen routine überprüfen, umwandeln und auftretende Fehlercodes abfangen, oder direkt mit einem OnChange Event der Eingabe Box arbeiten (Inhalt durchparsen, wenn ein Zeichen != 0..9 , . oder was auch immer ist das Zeichen aus de Eingabe Box löschen), oder nicht bei jedem OnChange ausführen sondern erst beim Event das die Verarbeitung auslöst
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh