Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Funktionen zeichnen mit Delphi6
Freak22 - Fr 16.02.07 17:56
Titel: Funktionen zeichnen mit Delphi6
Hallo,
ich muss "leider" ein doofes projekt machen bei uns im informatikunterricht und zwar alle mathematischen funktionen in einem programm darstellen, die im matheunterricht behandelt wurden. sprich ganz schön viele^^
wir müssen das mit canvas line to und move to und jeden parameter frei wählen können.
ganzrationale, gebrochenrationale, lineare, quadratische, sinus, cosinus, tangens und arctangens konnte ich von alleine darstellen, aber leider bin ich nun mit meinem latein am ende, weshalb ich das forum hier aufgesucht habe in der hoffnung ihr könnt mir helfen, weil das projekt wichtig ist ;)
mir fehlen also noch folgende funktionen:
- arcsinus
- arccos
- potenzfunktion
- wurzelfunktion
- exponentialfunktion
- logarithmusfunktion
wir müssen das wie besagt mit canvas line to move to oder irgendwie einfach darstellen, also keine weiteren addons oder wie das heißt.
hier ein beispiel für meine quadratische:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button4Click(Sender: TObject); begin a:=strtoint(edit8.Text); b:=strtoint(edit9.Text); c:=strtoint(edit10.Text); for i:=-550 to 550 do begin x1:=457+i; y1:=(round(272-((a/50*i*i)+(b/1*i)+c*50))); x2:=457+i+1; y2:=(round(272-((a/50*(i+1)*(i+1))+(b/1*(i+1))+c*50))); Canvas.Pen.Style:=psSolid; canvas.pen.width:=2; canvas.pen.color:=clred; canvas.MoveTo(x1,y1); canvas.LineTo(x2,y2)end; end; |
ich muss also y1 und y2 immer berechnen für jedes i. bei mir scheiterts imo drann, dass ich nicht weiß wie bei den oben aufgeführten funktionen das i eintrage. egal wie ich es mache, delphi spuckt fehlermeldungen aus oder stürzt ab. sitze schon seit 2 wochen an den 6 fehlenden funktionen und weiß nicht mehr weiter.
ich hoffe ihr könnt mir weiterhelfen und bissel mit möglichen beispielen/lösungen oder was auch immer unterstützen, hauptsache ich kapier das irgendwie.
mfg
freak22
Leuchtturm - Fr 16.02.07 18:04
Um es erst mal "klarzustellen" das was du hier als Codebeispiel hast ist eine procedure und keine function :wink:
Edit: Sorry ich hatte hier etwas falsch verstanden
Freak22 - Fr 16.02.07 18:13
hm ja, steht ja auch in der ersten zeile...
ok, dann eine prozedur, die die funktion zeichnet und genau das will ich^^
Jetstream - Fr 16.02.07 18:29
Hast du die unit "math" eingebunden? Die hat recht viele schöne Funktionen.
Alternativ kannste dir die Taylorreihen entwickeln ;)
freedy - Fr 16.02.07 18:47
Jetstream hat folgendes geschrieben: |
Alternativ kannste dir die Taylorreihen entwickeln ;) |
Yeah, cool... aber ich glaube, die werden in der Oberstufe noch nicht behandelt. ;)
Ich würde vorschlagen, du überlegst nochmal, wie du evtl. deine Werte skalieren kannst. Sowas gab es heute schonmal.
DELPHIPROBLEM MIT GRAFIK
Damit sollte dann auch die Sache mit dem I deutlicher werden. Damit können dann auch bestimmte Bereiche der Funktion dargestellt werden und die Sache wird etwas flexibler.
Alle Funktionen, die du brauchst, sind in der Unit
Math enthalten, wie Jetstream schon geschrieben hat. Bei den trigonometrischen Funktionen musst du nur darauf achten, dass die Wert in Rad und nicht Grad angegeben werden.
Hilft das?
Gruß
Freak22 - Fr 16.02.07 22:36
Muss ehrlich sagen, dass ich Delphi nur in der Schule benutze und eigentlich nur das kann, was dort behandelt wird, also die Grundkenntnisse. Da fängt schon das Problem an, wie ich eine Mathe unit einbinde etc. und wie das alles von statten geht.
Wir haben in der Schule nur mal ne Sinus und quadratische Funktion gezeichnet, davon hab ich bisher alle zu zeichnenen Funktionen abgwandelt. Bis auf die 6 im ersten Post genannten Funktionen, konnte ich diese so ohne große Probleme zeichnen lassen. Jetzt weiß ich aber nicht mehr weiter, wie die Funktionen nach dem Schema einbaue und das i so verwende, das er alle Werte in dem vorgegebenen Bereich zeichnet und so am Ende eine Funktion entsteht.
Wenn ihr wollt, kann ich mal das Programm + Quelltext anhängen und ihr könnt selber mal schauen. Bin eben kein Pro und dachte es gib nen Grundschema wie man arcsinus, Logarithmusfunktion, Wurzelfunktion etc. zeichnen kann. Ansonsten muss ich dem Lehrer sagen, dass ich es nicht einbauen konnte.
Mfg
Freak
freedy - Fr 16.02.07 23:32
Eigentlich ist programmieren ja nicht schwer. Man muss dem PC eben nur sagen, was er machen soll... und das eben haargenau und kleinlich.
Im Grunde steckt auch immer Mathematik dahinter. Ist eben mit Grundvoraussetzung.
Schon mal etwas von PAPs gehört (Programmablaufplan)? Ich helfe dir gerne, kaue dir den Stoff aber nicht vor. ;-)
Gruß
Freak22 - Sa 17.02.07 14:30
Mir ist schon klar wie das mit dem Programmieren ist, denn ich progge selber, aber das in php und weniger delphi ;)
Also hab mal ne Weile gegoogelt und auch ne Math Unit eingebunden, dadurch konnte ich jetzt 5 von den 6 Funktionen zeichnen. Also sie sehen jetzt so aus, wie es sein soll, muss nur mal gucken irgendwann, wie genau das Ganze ist.
Jetzt fehlt mir nur noch die Exponentialfunktion.
y := Exp( n ); heißt ja, zur Basis e.
Wie mach ich das zu einer beliebigen Basis a? (muss anmerken, das wir diese nocht nicht wirklich in der Schule hatten, glaub ich ;) )
Kroko - Sa 17.02.07 18:39
in der Delphi-IDE Power + F1
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!