AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte JTM 2 - umfangreicher Funktionsplotter (kartesisch & polar)
Thema durchsuchen
Ansicht
Themen-Optionen

JTM 2 - umfangreicher Funktionsplotter (kartesisch & polar)

Ein Thema von Jakob Ullmann · begonnen am 26. Mär 2008 · letzter Beitrag vom 22. Jun 2008
Antwort Antwort
Benutzerbild von Jakob Ullmann
Jakob Ullmann
Registriert seit: 17. Feb 2007
Hi,

JTM ist ein Funktionsplotter für beliebige Funktionen. Features sind:
  • Skalierung von Abszissen- und Ordinatenachse
  • Kopieren als Vektorgrafik (Windows MetaFile)
  • Drucken
  • Erstellen einer Wertetabelle
  • Drucken der Wertetabelle
  • Kopieren der Wertetabelle, um sie zum Beispiel in Excel oder in Word einzufügen
  • Mehrere Funktionen
  • Abspeichern / Öffnen des Plots
  • Grobes Berechnen eines Integrals
  • Bearbeiten von Farben
  • Bearbeiten von Linienstärke
  • Grobes Nähern eines Integrals (Rechteck-Methode)
  • Erste Ableitung
  • Wahlweise zeichnen mit / ohne Grid
  • Gradueller Hintergrund
  • Beliebiges Verschieben einer Funktion in alle Richtungen (Funktion wird aktualisiert)
  • Zeichnen einer Legende
  • Kartesische- und Polarkoordinaten
Würde mich freuen, wenn ihr es mal ausprobiert.

Alte Speicherung
Zitat:
Gespeichert werden die Funktionen (*.jtm) und Farben (*.jcm). Normalerweise haben Farben und Funktionen denselben Namen (außer Dateikennung), aber man kann auch beliebige Listen laden / speichern. Beides erfolgt als Textdatei, die Funktionen sind durch Zeilenumbrüche getrennt, bei den Farben sieht es ungefähr so aus:

Zitat:
ColorA=FF0000
ColorB=0000FF
ColorC=0080FF
ColorD=008000
ColorE=FF0080
...
Also die normale Farbspeicherung eines ColorDialogs.
Neue Speicherung: [Funktionen]|||[Punkte]|||[Farben]|||StartX|||StartY|||TickX|||TickY
Also fast ein bisschen CSV... Kann man also mit einem Texteditor bearbeiten.

Beispielfunktion:

Zitat:
x^2+2*x+1
oder

Zitat:
sin(4*x)+sin(5*x)
Auf gar keinen Fall "y=..." oder "f(x)=..." schreiben! Für Hinzufügen einfach Enter drücken.
Miniaturansicht angehängter Grafiken
screen_210.png  
Angehängte Dateien
Dateityp: exe jtm2_995.exe (1,21 MB, 22x aufgerufen)
 
Benutzerbild von Jakob Ullmann
Jakob Ullmann

 
Lazarus
 
#2
  Alt 21. Jun 2008, 13:29
Nach langer Pause poste ich hier auch mal ein Update: 2.0.3. Seitdem ich die letzte Mal hier das Programm hochgeladen habe, hat sich viel geändert. Das Programm kann jetzt zum Beispiel Punkte zeichnen, Raster zeichnen, Zoomen, Abstände zwischen Ticks verändern, verschieben mit der Maus, sodass es eigentlich ganz nützlich sein kann.
Jakob
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

 
Delphi 2009 Professional
 
#3
  Alt 21. Jun 2008, 13:35
Hi,

schaut ganz nett aus. Allerdings ist das Ableiten noch etwas "komisch".

Wenn ich x^2 ableite (was ja 2x wäre), spuckt das Programm "(((x+0,1)^2)-((x-0,1)^2))/0,2" aus. Ist zwar auch richtig, aber ...
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Jakob Ullmann
Jakob Ullmann

 
Lazarus
 
#4
  Alt 21. Jun 2008, 13:42
Ja, das muss man noch schön verpacken, so dass es in der Funktionsliste und in der Legende als f'(x) = x² eingetragen wird, kommt in 10 min.

//EDIT: Fehler wurde behoben, der User merkt rein gar nichts von der im Hintergrund erzeugten Formel.

Das habe ich nun immer noch so, weil man so aus jeder Funktion die Ableitung bestimmen kann und nicht erst auf irgendwelche Muster kontrollieren muss, nur halt sieht der User davon nichts mehr, außer im Eingabefeld, aber das wird ihn ja nicht stören. Jetzt habe ich auch eine Funktion für die zweite Ableitung eingebaut. Falls jemanden der Code für die Ableitungs-Funktion interessiert:

Delphi-Quellcode:
function Ableitung: string;
var old_edited1, old_edited2: string;
    newformula: string;
begin
  Form1.Edit1.Text := Copy(Form1.Edit1.Text, 2,
    Length(Form1.Edit1.Text) - 1);
  ... // Alle Funktionsnamen, in denen "x" vorkommt, ersetzen: exp -> joker, usw.
  old_edited1 := StringReplace(Form1.Edit1.Text,
                              'x', '(x+0,1)', [rfReplaceAll]);
  old_edited2 := StringReplace(Form1.Edit1.Text,
                              'x', '(x-0,1)', [rfReplaceAll]);
  ... // Zurück ersetzen: joker -> exp, usw.
  newformula := '(('+old_edited1+')-('+old_edited2+'))/0,2';
  Result := newformula;
end;
Jakob
  Mit Zitat antworten Zitat
Benutzerbild von Jakob Ullmann
Jakob Ullmann

 
Lazarus
 
#5
  Alt 22. Jun 2008, 14:21
Jetzt kann man auch auf Polarkoordinaten zeichnen.
Jakob
  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 16:42 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