Autor Beitrag
CK_CK
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Do 20.12.07 16:48 
Hallo,
ich habe gerade ein neues Programm fertiggestellt und es muss jetzt an euch getestet werden ;)
einem umfangreichen 2D-Funktionsplotter, der dabei aber einfach zu bedienen und (relativ) schnell ist.

Features:
  • Darstellung mehrerer Funktionen gleichzeitig, jede einzeln (de)aktivierbar
  • Anpassen der einzelnen Graphen
  • Anpassen sämtlicher Farben
  • Speichern/Laden der Funktionslisten
  • Exportieren des Plots in verschiedene Bildformate (png, gif, jpg, bmp) in beliebiger Größe
  • Zoomen mit Mausrad
  • Funktionseditor zum einfacheren Bearbeiten der Formel
  • Beschriftungen
  • Verschiedene Render-Einstellungen
  • Kurvendiskussion
  • Wertelisten exportieren

Funktionen:
  • Grundrechenarten (+, -, *, /)
  • Potenz (^)
  • Betrag: abs(x) oder |x|
  • Wurzel: sqrt(x)
  • Sinus: sin(x), arcsin(x)
  • Kosinus: cos(x), arccos(x)
  • Tangens: tan(x), arctan(x)
  • Logarithmus (Basis 10): lg(x)
  • Logarithmus (Natürlich): ln(x)
  • Exponentialfunktion: exp(x) oder e^x
  • Zufallszahl (zw. 0 und x): rand(x)
  • Konstanten (pi, e, rnd)

In Zukunft werden noch weitere Funktionen hinzukommen...

Changelog
Version 1.0 RC4
* Zoom-Funktion verbessert
* Funktionseditor verbessert
Version 1.0 RC3
+ Für sämtliche Funktionen existieren jetzt Hotkeys
* Im Vollbildmodus ist nun auch die Leiste mit Zusatzinfos zu sehen
* Fehler in der Druckfunktion behoben
* Die Berechnung des Plots beim Speichern geht schneller
Version 1.0 RC2
+ Die Plots lassen sich jetzt in beliebigen Größen drucken
+ Kurvendiskussion (alpha-Version) hinzugefügt
+ Wertetabelle hinzugefügt (Ausgabe als .csv möglich)
+ Versionscheck über das Internet möglich
+ About-Dialog hinzugefügt
+ X/Y - Werte unter der Maus werden unter dem Plot angezeigt
+ Mit der Mittleren Maustaste lässt sich ein Punkt markieren (mit Beschriftung)
+ Vollbildanzeige mit Doppelklick oder rechter Maustaste
* Der Plot wird bei Mausbewegungen nur noch bei Bedarf aktualisiert
Version 1.0 RC1
+ Oversampling-Funktion eingebaut. Noch genauere Plots möglich
* Oversampling-Einstellungen im Render-Optionen - Dialog eingebaut
* Oversampling-Einstellungen im Bild formatiert speichern - Dialog eingebaut
Version 1.0 beta2
+ Render-Einstellungen - Dialog hinzugefügt (z.B. Auswahl, ob AntiAlias aktiv sein soll)
+ Render-Einstellungen werden beim Beenden gespeichert
* Graph-Rendering verbessert (genauer)
Version 1.0 beta
+ Plots werden ab jetzt mit GDI+ gerendert (Antialiasing)
+ Beschriftungs-Editor hinzugefügt
+ Exportieren im Vektorformat möglich
* Graph kann jetzt Fokus erhalten (z.B. zum Zoomen)
* Anzeige der Achsen verbessert
* Verschiedene Design-Verbesserungen
* Einige kleinere Bugs wurden behoben
Version 0.9.6
+ Die Dateierweiterung .ckp kann auf Wunsch registriert werden
* Parser verbessert (ungültige Funktionen werfen keine Fehler mehr)
* Render-Geschwindigkeit verbessert
* Auf neues Dateiformat umgestellt (xml-ähnlich)
* Öffnen mit Parameter möglich (Dateiname)
* Ein paar kleinere Fehler behoben
Version 0.9.5
+ Formeleditor hinzugefügt (Doppelklick auf die Formel zum Öffnen)
+ Zoomen mit Mausrad möglich
* Bessere Komponenten für die Farbwahl eingefügt
* Enabled-Eigenschaften der Buttons werden richtig gesetzt
* Definition des Anzeigebereichs verbessert
* Beim hinzufügen neuer Formeln wird die Neue im ListView automatisch selektiert Zugriffsverletzung behoben

Screenshot
user defined image

Download-Links
> Direkt-Download [Version 1.0 RC4] (1.06 MB)
> Programm-Beschreibung und mehr Screenshots

So, viel Spaß beim Testen ;),
Chris


Zuletzt bearbeitet von CK_CK am Di 15.01.08 16:44, insgesamt 11-mal bearbeitet
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 20.12.07 16:54 
ich hab mal folgendes probiert:
ausblenden Quelltext
1:
sqrt(x/x)					

meines Erachtens hat diese Funktion den Definitionsbereich D = (x > 0), allerdings zeichnet dein Programm auch im negativen Zahlenbereich, hat das seine Richtigkeit ? Ich sehe dass man den Wertebereich selbst angegeben kann.

Ansonsten finde ich das Programm schon recht praktisch. Cool wären natürlich noch so Sachen wie Umkehrfunktionen / Ableitungen / Integrale / Differenzfunktion bestimmen lassen, aber das ist ein wenig viel erwartet, wobei man sicherlich das eine oder andere umsetzen kann.

Achja, ich bekam so eben eine AV, als ich auf öffnen und dann auf nein geklickt habe:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
---------------------------
CKPlotter 2
---------------------------
Zugriffsverletzung bei Adresse 0047F00C in Modul 'CKPlotter2.exe'. Lesen von Adresse 00000004.
---------------------------
OK   
---------------------------


mfg


Zuletzt bearbeitet von F34r0fTh3D4rk am Do 20.12.07 16:57, insgesamt 1-mal bearbeitet
CK_CK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Do 20.12.07 16:57 
Hi!
Vielen Dank für deine Antwort.

Sqrt(x/x) ist Wurzel aus x durch x...
...und x durch x ist IMMER 1, oder irre ich mich da?

Deine zusätzlichen Vorschläge finde ich klasse. Mal sehen, ob ich so etwas irgendwie einbauen kann ;)

Chris

EDIT: OK, werde heute Abend nach dem Fehler suchen. Jetzt muss erstmal mein Hund raus ;)


Zuletzt bearbeitet von CK_CK am Do 20.12.07 17:00, insgesamt 1-mal bearbeitet
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 20.12.07 16:59 
Allerdings gibt es ein problem, wenn x = 0 und wenn x < 0, denn man darf weder durch 0 teilen, noch wurzeln aus negativen Zahlen ziehen (außer im System der komplexen Zahlen), deshalb sollte die Gerade nur im ersten Quadranten zu sehen sein.

Sehr gut finde ich, dass man Bilder in allen möglichen Größen und Formaten speichern und diverse Farben etc. auswählen kann, ich denke, dass ich in Zukunft dieses Programm nutzen werde, wenn ich mal wieder eine Funktion zeichnen muss ;)

€: wenn nur noch eine funktion da ist, kann ich diese irgendwie nicht löschen, gut wäre noch sowas wie "alle anhaken" "keine anhaken".

mfg


Zuletzt bearbeitet von F34r0fTh3D4rk am Do 20.12.07 17:05, insgesamt 1-mal bearbeitet
CK_CK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Do 20.12.07 17:04 
Hmm, ich glaube, ich verstehe dich nicht richtig...

Der Parser berechnet für jedes x zuerst x/x (z.B. 0/0, was undefiniert ist oder auch (-44)/(-44)). Und negativ durch negativ ist doch positiv, also Wurzel möglich...
Also kann x ja nicht gleichzeitig 0 und <0 sein...

Freut mich aber, dass dir das Programm gefällt 8)

Chris
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 20.12.07 17:08 
stimmt, du hast recht, anderes beispiel:

ausblenden Quelltext
1:
sqrt(1/x)					

oder einfach: sqrt(x)

achja, cool wäre, wenn man senkrechten einzeichnen könnte.

kurvenscharen wären auch noch ne erweiterung, sodass man einen weiteren parameter variieren kann und sieht, wie sich die kurve verhält.
(geht auch schon ein bissl über den einfachen plotter hinaus, ist aber nicht schwer zu implementieren)

mfg
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Do 20.12.07 17:25 
Hey!
Ähnelt etwas dem Geogebra. Aber gefällt mir! :zustimm:

Ein paar Kritikpunkte und Vorschläge hätte ich aber dennoch:
• Farbpalette verschwindet im Vollbild-Modus (siehe Anhang)
• Meines Erachtens ist das Fenster für die Funktion defitiniv zu klein. Eine einfache breitere Zeile würde die Leserlichkeit drastig erhöhen
• Verschiebung der Sicht stockt etwas
• Keine einzeichbaren Punkte
• Keine Strecken einzeichbar
• Keine Tangenten und Normalen
• keine Flächen
• Funktionen lassen sich nicht per Maus verschieben
• Berechnung von:
• Schnittpunkt
• Extremwerten
• Integralen
• Grenzwerten
• Winkeln
• Abständen etc. fehlt
usw.
Das wäre noch wünschenswert. :)

Grüße
Marc
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Marc. am Do 20.12.07 18:52, insgesamt 1-mal bearbeitet
CK_CK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Do 20.12.07 18:36 
Wow, das sind viele Punkte :shock:
Eigentlich wollte ich das Programm "einfach" gestalten, also wie den Windows-Taschenrechner, um es "mal so zwischendurch" zu verwenden...

Ich werde jedoch trotzdem versuchen, alle eure Vorschläge umzusetzen. Ich werde dabei versuchen, das Programm nicht zu überladen. Wahrscheinlich wird morgen schon die nächste Version fertig sein...

Viele Grüße und schonmal vielen Dank für eure Testberichte,
Chris

PS: @F34r0fTh3D4rk: "Alle aktivieren" und "Alle deaktivieren" erreichst du über die Rechte Maustaste ;)
Tarry
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 213
Erhaltene Danke: 1



BeitragVerfasst: Do 20.12.07 19:19 
Hi,
klasse Prog :zustimm:
Es wäre noch klasse, wenn man mit dem Mausrad "zoomen" könnte, also den Bereich vergrößern / verkleinern.

Aber sonst ist mir nichts aufgefallen, wirklich schön geworden.

Gruß
Tarry

PS: Achja, vll wäre es noch nett, wenn das Prog auch Formeln im Styl von y=x erkennt oder du es irgendwo dazu schreibst, dass man sich das y= schenke kann...
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 20.12.07 21:03 
Moin,
echt cooles Ding. Mir sind ein paar wenige Punkte aufgefallen:

  • Ändernbutton ist aktiv, obwohl kein Element aktiviert
  • Gleiches gilt für Löschen
  • Funktionenlistview verliert Fokus, wenn man was anderes drückt
  • Dateitypenregistrierung für deinen Dateityp
  • Öffnen mit Parametern erlauben
  • Vielleicht eine Funktion, die den Syntax prüft
  • Farbenauswahldialog, anstatt dieser JvColorForm
  • Umkehrfunktion bilden könnt auch noch rein
  • Beim (zufälligen) Auswählen von Abstand=0 wurde alles rot ==> sollte nicht passieren
  • Warum steht da Wertebereich? Das ist doch der Definitionsbereich und der Wertebereich!
  • Ausschließen verschiedener Elemente aus dem Definitionsbereich (ähnlich Teilfunktionen)
  • Vielleicht wäre auch eine automatisch neue Auswahl einer noch nicht genutzten Farbe gut
  • Beim Auswählen der Achsenbeschriftung sollte ab 100 Abstand nur aller 10 möglich sein, oder zumindest empfohlen werden.
  • Funktion kopieren wäre auch toll
  • Wenn ich eine neue Funktion erstelle, dann wird in der ListView kein Itemindex gesetzt, und der Änder-Button bleibt auch deaktiviert
  • Anzeigen des Koordinatenpunktes, wenn die Maus über das Koordinatensystem gleitet
  • auch Monotonie am Punkt (x,y)
  • oder gleich einen Menüpunkt "Kurvendiskusion" bei einer ausgewählten Funktion

Alles in allem für dich, denke ich, leicht zu lösende Sachen. Vielleicht überholst du ja noch Geogebra :wink: .

MfG
Regan
CK_CK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Fr 21.12.07 16:03 
Vielen Dank für all eure Vorschläge. Ich werde auf jeden Fall weiter daran arbeiten. Hier mal der aktuelle Stand:

Version 0.9.5
+ Formeleditor hinzugefügt (Doppelklick auf die Formel zum Öffnen)
+ Zoomen mit Mausrad möglich
* Bessere Komponenten für die Farbwahl eingefügt
* Enabled-Eigenschaften der Buttons werden richtig gesetzt
* Definition des Anzeigebereichs verbessert
* Beim hinzufügen neuer Formeln wird die Neue im ListView automatisch selektiert Zugriffsverletzung behoben

Screenshot vom neuen Formeleditor
user defined image

Viele Grüße,
Chris


Zuletzt bearbeitet von CK_CK am Do 27.12.07 12:20, insgesamt 1-mal bearbeitet
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 22.12.07 13:36 
Es gibt leider immernoch Fehler, wenn man das Speichern abbricht.

mfg
CK_CK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Sa 22.12.07 15:22 
So, jetzt sollte der Fehler weg sein. Wenn er immer noch besteht, sag' mir doch mal bitte, was du genau tun musstest um ihn zu erzeugen...

Version 0.9.6
+ Die Dateierweiterung .ckp kann auf Wunsch registriert werden
* Parser verbessert (ungültige Funktionen werfen keine Fehler mehr)
* Render-Geschwindigkeit verbessert
* Auf neues Dateiformat umgestellt (xml-ähnlich)
* Öffnen mit Parameter möglich (Dateiname)
* Ein paar kleinere Fehler behoben

Viele Grüße,
Chris
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Sa 22.12.07 17:38 
Da ich vor ein paar Jahren selber mal sowas ähnliches gemacht habe, hier noch einige Vorschläge:

- Ich finde es wichtig, das Bild als Vektorgraphik (eps, emf, svg) abspeichern zu können. Ebenso Titel/Achsenbeschriftung/Legende. Ist vor allem beim Druck dann schöner.
- Bei steilen Funktionen wird die Linie nicht vollständig bis zum Bildschirmrand gezeichnet.
- Die Bildfläche kann keinen Fokus erhalten. Das Bild zoomt immer mit dem Scrollrad, auch wenn z.B. das Feld "Schrittweite" fokussiert ist.
- Die "Stil"-Listbox zeigt einen komischen Effekt (siehe Bild)
- Stil "gepunktet" geht irgendwie nicht
- Ich habe es nicht geschafft, die Achsen/Hintergrundfarbe zu ändern
- Bei einem Fehler in der Formel passiert einfach nichts
- Heutzutage würde ich vermutlich geglättete Linien verwenden

Alles in allem gefällt er mir recht gut :zustimm:
Einloggen, um Attachments anzusehen!
CK_CK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Sa 22.12.07 18:45 
user profile icondelfiphan hat folgendes geschrieben:
Ich finde es wichtig, das Bild als Vektorgraphik (eps, emf, svg) abspeichern zu können. Ebenso Titel/Achsenbeschriftung/Legende. Ist vor allem beim Druck dann schöner.
Finde ich gut. Wird in einer der kommenden Versionen eingebaut...
user profile icondelfiphan hat folgendes geschrieben:
Bei steilen Funktionen wird die Linie nicht vollständig bis zum Bildschirmrand gezeichnet.
Wird ebenfalls verbessert ;)
user profile icondelfiphan hat folgendes geschrieben:
Die Bildfläche kann keinen Fokus erhalten. Das Bild zoomt immer mit dem Scrollrad, auch wenn z.B. das Feld "Schrittweite" fokussiert ist.
Ist behoben. Jetzt wird nur noch gezoomt, wenn die Maus über der Komponente ist...
user profile icondelfiphan hat folgendes geschrieben:
Die "Stil"-Listbox zeigt einen komischen Effekt (siehe Bild)
Stil "gepunktet" geht irgendwie nicht
Das Symbol bedeutet, dass Punkte geplottet werden sollen, statt Linien. Am besten zu Sehen bei steilen Funktionen (5sin(x) mit Anzeigebereich 10)
user profile icondelfiphan hat folgendes geschrieben:
Ich habe es nicht geschafft, die Achsen/Hintergrundfarbe zu ändern
Ich hatte das OnChange-Ereignis vergessen ;) Ist jetzt behoben...
user profile icondelfiphan hat folgendes geschrieben:
Bei einem Fehler in der Formel passiert einfach nichts
In Zukunft wird eine Warnung ausgegeben, wenn die Formel falsch ist. Ich arbeite aber noch daran =)
user profile icondelfiphan hat folgendes geschrieben:
Heutzutage würde ich vermutlich geglättete Linien verwenden
Würde ich auch gerne, ich habe aber noch keine (einfache) Möglichkeit gefunden, welche zu zeichnen. Intern benutze ich ein TBitmap als Buffer. Gibt es eventuell einen Ersatz dafür, mit einem Canvas das Antialias unterstützt?

user profile icondelfiphan hat folgendes geschrieben:
Alles in allem gefällt er mir recht gut :zustimm:
Vielen Dank ;)

Chris
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 22.12.07 18:58 
Ich glaube, delfiphan höchstselbst hat im DF mal einen Code gepostet um Geglättete (auch dicke) Linien zu zeichnen, einfach mal suchen ;)

mfg
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Sa 22.12.07 20:47 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
Ich glaube, delfiphan höchstselbst hat im DF mal einen Code gepostet um Geglättete (auch dicke) Linien zu zeichnen, einfach mal suchen ;)

Ach ja, die sind aber nicht ganz so universell und wohl auch nicht ganz so schnell. Ich würde die GDI+ Library verwenden, ist ab Windows XP mit dabei. Da kann man auch die Strichdicke wählen, und Effekte wie gepunktete Linien und so sollte auch gehen. Wie man die in Delphi nutzt, sollte im Forum oder im Internet zu finden sein.
CK_CK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Mi 26.12.07 21:14 
So, ich habe das gesamte Teil auf GDI+ umgeschrieben...
Die Plots sehen nun wesentlich schöner aus ;)

Und Exportieren im Vektorformat ist nun auch möglich...

Der neue Beschriftungs-Editor:
user defined image

Version 1.0 beta
+ Plots werden ab jetzt mit GDI+ gerendert (Antialiasing)
+ Beschriftungs-Editor hinzugefügt
+ Exportieren im Vektorformat möglich
* Graph kann jetzt Fokus erhalten (z.B. zum Zoomen)
* Anzeige der Achsen verbessert
* Verschiedene Design-Verbesserungen
* Einige kleinere Bugs wurden behoben

Viele Grüße,
Chris
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mi 26.12.07 23:38 
Sehr schön! Eine Sache stört mich aber noch: Das Antialiasing sieht bei nahezu horizontalen Linien nicht so schön aus. Aber folgende zwei Tipps könnten helfen: Linien, die am Stück sind, sollten auch am Stück gezeichnet werden. Dazu gibt es die Funktion GdipDrawLines oder wenn du die TGPGraphics verwendest siehe DrawLines. Dort kannst du gleich ein Array von Punkten übergeben. Das hast du aber vermutlich schon so drin, sonst würden die gepunkteten Linien wohl nicht richtig funktionieren. Zweitens (daran wird es wahrscheinlich liegen): GDI+ stellt jeweils Zeichenfunktionen für ganzzahlige und auch nicht ganzzahlige Koordinaten zur Verfügung. Runden musst du die Koordinaten also nicht wie bei TCanvas. Zu meinem Postingsjubiläum noch ein Bild zur Verdeutlichung im Anhang ;) Statt wie a) sollte es dann wie b) aussehen.
Einloggen, um Attachments anzusehen!
CK_CK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 140

Win 2000, Win XP Prof
Delphi 2006 Enterprise
BeitragVerfasst: Do 27.12.07 12:28 
Hi!
Ja, du hast recht. Ich verwende DrawLines und ich runde auch die Punkte...
(Habe es gerade getestet und ohne Runden sieht's so aus, wie du es willst)

Werde heute Abend das Programm updaten ;)

Chris