AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Funktionsgraphen zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

Funktionsgraphen zeichnen

Ein Thema von Durin · begonnen am 23. Dez 2006 · letzter Beitrag vom 25. Dez 2006
Antwort Antwort
Durin

Registriert seit: 8. Dez 2006
8 Beiträge
 
#1

Funktionsgraphen zeichnen

  Alt 23. Dez 2006, 19:49
Abend,
Ich hab mich jetzt mal daran versucht ein Programm zu schreiben, welches funktionen zeichnet. Ich bin jetzt schon mal so weit, dass der Quelltext steht und auch keine Fehlermeldungen kommen. Das Programm will aber einfach nicht den Graphen zeichnen. Da die Suchfunktion im Moment nicht funzt, muss ich ein neuen Thread eröffnen, da er ja ein immenser Aufwand wär, dass Forum ohne Sufu zu durchsuchen. Also, ich hab jetzt 2 Probleme.
Das 1.( und unwichtigere): Wenn ich den Befehl zum zeichnen der Achsen und den Befehl zur einzeichnung der Einheiten auf einen Button mache, entstehen die Graphen nur für einen Bruchteil einer Sekunde udn verschwinden dann wieder. Das Problem hab ich jetzt erstmal provisorisch so gellöst das ich auf die Form.procedure den Befehl zum zeichnen der Einheiten und auf den Button "Achsen" das Zeichnen der Achsen gelegt habe. Diese Problem ist aber nicht weiter wichtig sondern nur eine Feinheit.
Das 2.Problem: Ich hab jetzt den Befehl zum zeichnen der Funktion geschrieben. Es kommen ja auch wie gesagt keine Fehlermeldungen, aber der Graph wird einfach nicht gezeichnet. Ich hab schon den moveTo und lineTo-Befehl an jede mögliche Stelle gesetzt, aber es geht einfach nicht. Desweiteren weis ich nicht wie man eine Funktion aus einen Editfeld herauslesen kann und dann mit in die Berechnung reinnehmen kann, z.B. x²*3x+8 oder so, sodass das Eidtfeld, welches dazu vorgesehen ist im Moment ohne Nutzen ist und die Funtkino direkt in den Quelltext geschrieben werden muss (im Moment y=x+1).
Könnt ihr mir weiterhelfen
Angehängte Dateien
Dateityp: rar funktionen_564.rar (146,2 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#2

Re: Funktionsgraphen zeichnen

  Alt 24. Dez 2006, 09:18
Morgen,

Du hast da ein paar seltsame Dinge in deinem Programm.

Du zeichnest einmal auf der canvas vom image und einmal auf der canvas vom form. Das bringt unerwartete Ergebnisse.

Deine procedure TForm1.Button3Click zeichnet so überhaupt nichts.

Wenn du dein eigenes Programm mit dem debugger ansiehst,dann erkennst du sofort, warum das so ist.
Schau dir die Funktion der Tasten F4 F8 und F7 an und teste, was dein Programm macht. Ohne dieses debuggen wirst du kein Programm entwickeln können. Das ist einfach notwendig.

In der TForm1.Button3Click wird die while schleife niemals durchlaufen, weil du den Vergleichsoperator verkehrt verwendest. Es muss heissen:while Image1.Left + u_achse < breite do Dann zeichnet das Programm.

Was gezeichnet wird, ist aber nicht, das was du willst. Eine sehr seltsame Treppenlinie kommt da raus. Vielleicht hast du moveto und lineto verwechselt. Wenn du das eimal ansiehst, wirst du schon draufkommen, wie es geht.

edit: meine Vermutung war falsch. Im Nachhinein habe ich gesehen, woran es liegt: Du veränderste mit den Eineheiten gleichzeitig die Auflösung der gezeichneten Kurve. Das ist nicht gut. die Auflösung sollte schon feiner sein, als die Unterteilung der Einheiten. Das Verhältnis 1:10 bis 1:50 sollte da gut sein.

Dein Vorhaben, die zu plottende Funktionsgleichung aus einem edit Feld zu beziehen, ist sehr schwierig um zu setzen und stellt ein grösseres Vorhaben dar. Dazu sollte man schon recht fit sein.

Etwas leichter umzusetzen sind zwei andere Varianten:
1. Formeln auf dem form auswählen lassen: y=x, y=x*x, y=x*x*x usw.
2. Formeln durch Koeffizientenangaben modifizieren lassen: y=k1+k2*x+k3*x*x .... wobei die Koeffizienten in edit Felder eingetragen werden können. Die nicht benötigten Formelteile werden durch Koeffizienten mit der Grösse 0 automatisch deaktiviert.

grüsse,
der flossinger
  Mit Zitat antworten Zitat
Durin

Registriert seit: 8. Dez 2006
8 Beiträge
 
#3

Re: Funktionsgraphen zeichnen

  Alt 24. Dez 2006, 13:39
Danke.
Jetzt bin ich schon soweit, dass das Prog. den y-Wert richtig ausrechnet, jedoch kommt ja beim y-Wert ein real-wert raus. Jetzt brauch ich aber einen Integer-Wert, also Ganzzahlig. Ist es überhaupt machbar eine Gleitkomazahl in die Koordinaten eines Canvas zu bringen?
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#4

Re: Funktionsgraphen zeichnen

  Alt 24. Dez 2006, 14:04
Zitat von Durin:
Ist es überhaupt machbar eine Gleitkomazahl in die Koordinaten eines Canvas zu bringen?
Nein, ist es nicht, aber mit Trunc() und/oder Round() sollte Abhilfe geschaffen sein.


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Funktionsgraphen zeichnen

  Alt 24. Dez 2006, 15:53
Siehe auch http://www.michael-puff.de/dirindex....phi/Sonstiges/ -> SchraegerWurf.zip

21.000 Postings
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Durin

Registriert seit: 8. Dez 2006
8 Beiträge
 
#6

Re: Funktionsgraphen zeichnen

  Alt 25. Dez 2006, 08:05
Jetzt bleibt mir nur noch ein Problem. Wenn ich 2mal auf den Zeichnen-Button klicke, erstellt er noch eine andere Linie die vollkommen schwachsinig ist. Ich schätz mal, dass kommt daher, dass er noch Werte aus den 1.Durchlauf speichert oder das ich lineTo und moveTo verdreht habe. Ich muss aber die 2 Befehle verdrehen, da er sonst nichts zeichnet
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#7

Re: Funktionsgraphen zeichnen

  Alt 25. Dez 2006, 08:34
Mit dem Debugger wirst du schnell herausfinden, in welcher Reihenfolge dein Programm seine Aktionen ausführt. Dann kannst du leicht die nötigen Korrekturen anbringen. In Posting #2 steht, welche Tasten du verwenden kannst.

grüsse,
der flossinger
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:29 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