|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 17.11.2005, 19:33 Titel: Funktionenplotter |
|
|
Ich habe einen Funktionenplotter mit Qt geschrieben. Er unterscheidet sich dahingegen von anderen Plottern, dass er die Funktionen nur mit der Umgekehrte Polnische Notation interpretieren kann. Natürlich gibt's erstmal ein Bild.
Das heißt das man statt
"1 + 1"
"1 1 +"
schreiben muss. (Das war lange Zeit Standard bei HP-Taschenrechnern.)
oder statt:
"x²"
"x x *" bzw. "x 2 ^"
oder etwas komplizierter:
"abs(sin(x)*x)"
"x sin x * abs" oder "x x sin * abs"
Folgende Funktionen sind implementiert:
"+", "-", "*", "/", "^", "sqrt", "abs", "root", "log", "log10", "ln", "exp", "sin", "cos", "tan", "asin", "acos", "atan", "sinh", "cosh", "tanh"
"pi" und "e" (eulersche Zahl) gibt's auch.
Zahlen kann man auch in Exponential-Schreibweise schreiben (z. B. 1e-10).
Der Vorteil an dieser Methode ist, dass man das ganze einfach wie einen Stack behandeln kann. Und das, das was der User vorher machen muss (also den Term in einen für Computer leicht-lesbaren Code umzuwandeln) man nicht mehr implementieren muss.
Das ganze war ein Projekt für die Schule. Der Code ist unter der GPL lizenziert, mit Ausnahme des Codes von Patricks Website und von #c++.de im QuakeNet -- Hilfechannel zu C++.
Hier die Binaries:
Windows + Qt 4.01 runtime
Linux (benötigt Qt4)
Quellcode (mit QMake unter Windows und Linux (hoffentlich auch Mac) kompilierbar):
Quellcode
Qt für Windows (am besten gleich mit MinGW runterladen))
Über Kommentare oder Bug-Reports freue ich mich natürlich. _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 17.11.2005, 19:42 Titel: |
|
|
Also, ich finde die Schreibweise recht seltsam und umständlich^^ _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 17.11.2005, 19:44 Titel: |
|
|
Jonathan_Klein hat Folgendes geschrieben: | Also, ich finde die Schreibweise recht seltsam und umständlich^^ |
Ja, aber sie ist so einfach zu implementieren
Vielleicht werde ich auch noch einen Algorithmus einbauen, der die normale Schreibweise in UPN konvertiert.
http://en.wikipedia.org/wiki/Reverse_Polish_notation#Converting_from_infix_notation _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 17.11.2005, 19:47 Titel: |
|
|
joah, ich wollte mal n Plotter schreiben wo man einfach ganz normal alles eintippen kann, mit Klammern oder so, aber irgendwann war das n bisschen komplex geworden, und ich hab aufgehört. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
fast hawk Senior JLI'ler
Anmeldedatum: 15.07.2005 Beiträge: 237 Wohnort: Freiburg Medaillen: Keine
|
Verfasst am: 17.11.2005, 19:56 Titel: |
|
|
das ist ein bisschen umständlich da macht man nich wirklich gern Rechnungen da nimmt man einfach was anderes weil mit
längeren Rechnungen kommt man da durcheinander und wenn man alles anernander schreibt erkennt er es nicht. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|