|
![]() |
Registriert seit: 14. Apr 2009
Funktionsplotter
Der Funktionsplotter zeichnet Diagramme mit Graphen von • expliziten Funktionen y = f(x) • Kurven in Parameterdarstellung x = fx(t), y = fy(t) • Kurven in Polarkoordinaten r = f(phi) Die Funktionen können analytisch mit Formeln oder durch Tabellen gegeben sein. Es können Tabellen der Funktionswerte angezeigt und ausgedruckt werden. Ein Diagramm wird mit max. 2 Graphen in einem wählbaren Diagrammbereich erzeugt. Dem Diagramm können weitere Graphen zugefügt werden. Die Bearbeitung eines Diagramms kann protokolliert werden. Diagramme können mit ihrem Bereich gespeichert und wieder eingelesen werden. Die Bilder von Diagrammen können als Bitmaps mit 16-Farben für andere Anwendungen exportiert werden. Diagrammbereich Der Diagrammbereich wird durch die Grenzen aX, eX und minY, maxY horizontal bzw. vertikal festgelegt. 'winkeltreu' Falls markiert. wird yMin nach den Grenzen aX, eX und yMax so gesetzt, daß winkeltreue Graphen entstehen 'YAuto' verringert für Graphen expliziter Funktionen yMax und yMin entsprechend dem Ordinatenbereich der Stützstellen. Im Diagramm wird der Bereich durch zwei skalierte Achsen dargestellt. Graphtypen • Explizite Funktion y(x) mit maximal 2 Polen im Intervall [aX, eX], • Parametrische Kurve x(t), y(t), t aus dem Intervall [aT, eT]. • Kurve in Polarkoordinaten mit maximal 2 Ästen. r(t) mit t = Phi, Phi aus dem Intervall [aPhi, ePhi] bzw. [a2Phi, e2Phi]. • Tabelle für Stützpunkte x(i), y(i) einer Funktion. Enthält die Tabelle nur die Werte y(i), so werden die x(i) als Folge natürlicher Zahlen gesetzt. • Tabelle für Stützpunkte t(i), x(i), y(i) einer parametrischen Kurve. Enthält die Tabelle nur die Punkt- koordinaten x(i), y(i) so werden die t(i) als Folge natürlicher Zahlen gesetzt. • Tabelle für Stützpunkte phi(i), r(i) einer Kurve in Polarkoordinaten. Enthält die Tabelle nur die Werte r(i), so werden die phi(i) als Folge natürlicher Zahlen gesetzt. Der Graphtyp wird als Option für die Graphen 1 bzw. 2 ausgewählt. Er bestimmt, welche Formeln bzw. Tabellenfiles aktuell sind. Interpolation Die Funktionen der Graphen werden an äquidistanten Stützstellen definiert, zwischen denen mit natürlichen kubischen Splinefunktion interpoliert wird. Das Programm definiert für jeden Graphen 3 Arrays von Stützstellen, die verwendet werden für: • die explizite Funktion y(x) und ihre Fortsetzungen nach dem 1. und 2. Pol. • die Funktionen x(t), y(t) einer parametrische Kurve. • die Funktion r(t) für die beiden Äste einer Kurve in Polarkoordinaten. Zu jedem Array gehört ein Definitionsbereich [aX, eX], [aT, eT] bzw. [aPhi, ePhi] Die Arrays der Stützpunke können • mit Funktionen y = f(x), x = f(t), y = f(t) bzw. r = f(phi) mit phi=t berechnet werden. Die Anzahl der Stützstellen (max. 99) wird für den 1. und 2. Graphen getrennt gesetzt. Die mittleren Stützstellen sind äquidistant. Um die Funktion an Anfang und Ende des Bereiches richtiger darzustellen, werden dort zwei Stützstellen mit 1/4 Schritt eingeschobenen. • aus Tabellenfiles geladen werden. Funktionen Graphen können durch analytische Funktionen y(x), x(t), y(t) bzw. r(phi) definiert werden, nach denen die Stützpunkt-Arrays mit nStep Stützpunkten im Bereich [aX, eX], [aT, eT] bzw. [aPhi, ePhi] erzeugt werden. Funktionen werden durch eine Formel und Funktionsparameter definiert. Die Berechnung der Stützstellen und der daraus hergeleiteten SplineFunktionen erfolgt nach Edition der Formel und ihres Darstellungsbereiches mit 'Ok, berechnen'. Jede Edition der Formel, ihrer Parameter und ihres Laufbereiches macht die Stützstellen und Splines ihres Graphen ungültig. Berechnung der Funktionswerte Die Berechnung der Funktionswerter erfolgt mit dem Interpreter aus der Unit Formel. In den Formeln können neben dem Argument x bzw. t die Funktionsparameter a, b, c, d und w verwendet werden. Ihre Werte werden zu der Formel eingegeben. Die beiden Funktionen x(t) und y(t) eines Graphen verwenden die gleichen Werte für die Funktionsparameter a, b, c, d, und w. Der Parameter w ist für Winkel (im Bogenmaß) ausgelegt. Der Parameter w wird in Grad eingegeben, mit w werden u = cos(w) und v = sin(w) bereitgestellt. Laufzeitfehler treten bei der Verwendung der Formel auf. Sie führen meistens nur zur Begrenzung des Darstellungsbereiches bzw. zum Erkennen eines Pols. Ein Syntaxtest wird bei der Übernahme einer Formel (mit Funktion|Ok) durchgeführt. Hierzu wird der Funktionswert an der Stelle x = (ta + te)/2 berechnet. Laufbereiche für x, t und phi • Die Abszissen einer expliziten Funktion f(x) laufen von xa bis xe. • Der Parameter t in x(t) und y(t) parmetrischer Kurven läuft von aT bis eT. • Bei Graphen in Polarkoordinaten stellt t den Winkel phi dar. Seine Laufbereiche aPhi..ePhi und a2Phi..e2Phi (für einen 2.-Ast) werden in Grad eingegeben. Wird ein Laufbereich geändert, so müssen die Stützstellen und Splinefunktionen des Graphen neu berechnet werden. Stützpunkt-Tabellen Für explizite und polare Graphen können die Stützpunkte geladen werden aus Tabellen vom Typ * WERTE mit den Ordinaten y. Die Abszissen werden als Folge natürlicher Zahlen generiert * ORDI mit Anfangswert xa, Schritt dx und den Ordinaten y. Die Abszissen werden im Abstand dx ab xa generiert * KOORD2 mit Abszissen und Ordinaten geladen werden. Für parametrische Graphen können die Stützpunkte geladen werden aus Tabellen vom Typ * KOORD2 mit den Ordinaten x und y. t wird als Folge natürlicher Zahlen generiert. * KOORD3 mit dem Parameter t und den Ordinaten x, y. Die Parameter t müssen eine aufsteigende Folge bilden. Tabellenfiles erzeugen sie mit den Programmen WerteTabelle, OrdiTabelle, Koord2Tabelle, Koord2Tabelle aus dem Ordner Tabellen und mit dem programmierbaren Tabellenrechner. Die Formelbibliotheken ZumFunktionsplotter gibt es Bibliotheken für Formeln f(x) bzw. f(t), die in xFormel.dat bzw. yFormel.dat gespeichert sind. xFormel.dat und yFormel.dat sind Textdateien, die Sie mit dem Editor bearbeiten können. Vermeiden Sie dabei die Verwendung von Tabs. Splines für Graphen expliziter Funktionen Eine Funktion y = f(x) die im Intervall [xa, xe] einen Pol enthält kann nicht durch eine Splinefunktion interpoliert werden, da sie an der Stelle des Poles nicht stetig ist. Um die Anzeige von Graphen expliziter Funktionen mit Polen zu ermöglichen, wird das Intervall an den Polstellen unterteilt. Hierzu bildet das Programm nur Arrays von Stützstellen, deren Ordinate den mit yMin und yMax gegebenen Darstellungsbereich nicht überschreiten. Soll eine Stützstelle mit einer außerhalb von [yMin -0.02*(yMax-yMin), yMax + 0.02*(yMax-yMin)] gelegenen Ordinate gebildet werden, so wird das aktuelle Array abgeschlossen und nach der nächsten Stützstelle, die im Darstellungsbereich liegt, gesucht. Nach dem ersten Stützpunktarray des Graphen wird von dort aus ein zweites, nach dem zweiten ein drittes angelegt, dann bricht der Graph ab. Es ist Aufgabe des Anwenders zur Berechnung der Splinefunktionen den Bereich [yMin, yMax] geeignet zu setzen. Ist er zu klein, so entsteht eine große Lücke im Graphen, ist er zu groß, so kann eventuell ein Pol nicht erkannt werden. Beispiele Der Menübefehl 'Beispiele|zeigen' öffnet ein Panel mit einer Auswahlliste der Beispiele. Nach Auswahl eines Beispiels werden die von seiner Formel verwendeten Funktionsparameter mit einem erläuternden Prompt auf dem Panel zur Edition bereitgestellt. 'Ok' übernimmt das Beispiel als Graph 1, bildet die Stützstellen und Spleins und zeigt den Graphen an. Kegelschnitte• Ellipse um Mittelpunkt • Parabel um Scheitelpunkt • Hyperbeln • Kegelschnitte (polar) Spiralen• Archimedische Spirale • Logarithmische Spirale • Hyperbolische Spirale Zykloiden • Zykloide • Epizykloide • Hypozykloide • Kardioide • Astroide Schwingungen Bemerkenswerte Kurven • Harmonische Schwingung • Zissoide • Ausschwingvorgang • Strophoide • Amplitudenmodulation • Konchoide des Nikomedes • Frequenzmodulation • Kartesisches Blatt • Lissajousfiguren • Traktrix • Schwingung auf Kreis • Kettenlinie Die Beispiele sind in der typisierten Datei 'Beispiele.Dat' gespeichert. 'Beispiele|editieren' öffnet ein Dialogfenster, um diese zu bearbeiten. Anzeige Wertetabelle Der Menübefehl 'Anzeigen|Werte' öffnet ein Dialogfenster mit dem man Tabellen der die Graphen bestimmenden Funktionen anzeigen und drucken kann. Das Fenster ist kompakt gehalten, damit es möglichst wenig vom Diagramm verdeckt, 'Tabelle' Auswahl Graph 1 oder Graph 2 'Ast' bei polaren Graphen mit 2 Ästen Auswahl Ast 1 oder Ast 2. 'Dez' Die Anzahl der Dezimalstellen läßt sich für Abszissen und Ordinatenwerte getrennt setzen. Bei Graphen parametrischer Kurven werden die Tabellen der Werte der Funktionen x(t) und y(t) hintereinander ausgegeben (aber nebeneinander gedruckt!). Anzeige Stützstellen Der Menübefehl 'Anzeigen|Stützstellen' öffnet ein Dialogfenster mit dem man die Stützstellen der Graphen anzeigen kann. Verwenden Sie diese Anzeige zur Klärung unerwarteter Ergebnisse. Ich möchte mich bei allen entschuldigen, weil ich wieder einmal einen Beitrag gepostetet habe, der Laufzeitpackeges verwendet. Hier jetzt das richtige Archiv.
Autor: DP Ernst Winter
|
Dipl Phys Ernst Winter |
Öffentliches Profil ansehen |
Mehr Beiträge von Dipl Phys Ernst Winter finden |
|
#11
Ich habe die exe ausprobiert. Keine der Funktionalitäten kann ohne Fehlermeldung aufgerufen werden. Neukompilieren zeigt fehlende convert.dcu an.
Fehler bei 1)Diagramm laden - "Keine Bitmap mit Diagramm!" beim öffnen von einer der beiliegenden BMP-Dateien(egal welche) 2)Protokoll - nichts passiert 3)Formel (vorgabe) F(x)=x - "Fehler bei Fliesskommaoperation" 4) Beispiel laden - "Datei BMap.bmp kann nicht erstellt werden" Lösche ich die Datei, kommt beim starten des Programms die gleiche Fehlermeldung. Danach kommt bei Beispiel laden nur ein leeres Panel. |
![]() |
Delphi 12 Athens |
#12
Da der Autor sich vor 15 Jahren zuletzt angemeldet hat, denke ich, die Kritik stößt leider ins Leere.
Detlef
|
![]() |
Delphi XE5 Professional |
#13
Ich hab's mir mal runtergeladen, die Convert in der Uses rauskommentiert und an einer Stelle beim DecimalSeparator das FormatSettings davor ergänzt.
Dann ließ sich das Projekt kompilieren (mit Delphi XE5). Die Benutzeroberfläche sah bzgl. einiger Labels etwas zerschossen aus, aber die Beispiel-Funktionen ließen sich aufrufen und darstellen. Wer Interesse daran hat, kann sich das Projekt also selbst mal etwas überarbeiten. Das ist kein Hexenwerk. |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |