Apple IIGS» FktGraphics ======================= Version 1.8 Utility Apfel Research Kitchen "The GS is not dead - it just smells funny!" --------------------------------------------------------------------------- Copyright (c) 1991 Dirk Frûhling - Shareware Dirk Frûhling Uhlandstr. 39 4600 Dortmund 1 West-Germany --------------------------------------------------------------------------- This program contains material from the ORCA/Pascal Run-Time Libraries, copyright 1984-1990 by the Byte Works, Inc. Used with permission. --------------------------------------------------------------------------- This program can be used to draw graphs of functions of the type f(x) and to draw data files consisting of double precision reals (e.g. output from ORCA/Pascal or TML-Pascal programs). FktGraphics uses the standard IIGS graphical interface. The computed graphs are QuickDraw pictures which can be imported into DTP programs like AppleWorks GS, manipulated and printed at any resolution. FktGraphics saves the function, the drawing area etc. as a resource with the drawing. You can also use a HP-GL compatible plotter to display the function. This program is SHAREWARE, so everyone can copy and try it. If you like it and want to use it after a two weeks trial period, send $20 to the adress above. You will get the newest version of FktGraphics along with a complete documentation (this file) in english (I haven't translated it yet). You will also be able to get updates at a small charge. I also welcome your comments! FktGraphics needs GS/OS version 5.0.2 or higher, and you have to use a program that recognises resources to copy it. A few hints: You can use all the functions that are shown in the 'About...' dialog, and FktGraphics parses the formula mathematically correct (that means () before ^, ^ before */, */ before +-). You can use pi and e as predefined constants and a, b, c, d as selfdefined constants, and you can also place a comment after ';' behind the function. The function can be up to 255 characters long. If you want to stop the drawing process, you can press open-apple-period. If you click on a point inside a window, a dialog box will be displayed, showing you the function value and the derivatives at this point. If you hold the mouse button and drag the mouse, you can define the drawing area. The drawing area dialog hase four buttons that allow you to ajust maximum x or y values to get equal distant units on the screen and when printing in normal or condensed mode (1:1, 2:1, 1:2). You can open up to four windows, but you currently only have one function at a time and the one loaded last will overwrite the other and will be saved with each window! To produce a data file to be displayed, look at the source code samples for TML and ORCA/Pascal. I think, the other features of FktGraphics will be easy to explore, but I will provide a complete documentation anyway. Updates seit Version 1.6: 1.61 - bessere Speicherverwaltung bei der Funktionsanalyse -> kleinerer Stack, lÉuft auch in 'volleren' Umgebungen - geÉnderte Fehler- und Hinweisdialoge 1.7 - UnterstÄtzung von HP-GL-kompatiblen Plottern (Hewlett-Packard Graphics Language) - Option einer kleineren Zeichnung fÄr besseren Import in Textdokumente - Beschriftung des Koordinatensystems 1.8 - Zeichenbereich kann mit der Maus verÉndert werden - Zeichenbereich kann mittels Buttons fÄr den Ausdruck auf gleiche Einheits- abstÉnde (normal und condensed) justiert werden - Klick ins Zeichenfenster gibt Funktionswert wieder - Zahlendarstellung kann verÉndert werden - Fehler bei der Funktionswertberechnung beseitigt - Dateiauswahl verbessert - Kommentare kûnnen mit ';' an den Funktionsterm angehÉngt werden ---------------------------------------------------------------------------------- Apfel-MenÄ ---------------------------------------------------------------------------------- Äber FktGraphik... Bei der Wahl dieses MenÄpunktes erscheint ein Fenster mit Informationen Äber das Programm (Versionsnummer, eingebaute Funktionen usw.). (Desk Accessories) Desk Accessories werden von FktGraphik voll unterstÄtzt. ---------------------------------------------------------------------------------- MenÄ Ablage ---------------------------------------------------------------------------------- Neu ·ffnen... Schlie¤en Alles Schlie¤en Mit 'Neu' wird ein Fenster zum Zeichnen geûffnet. Bei der Wahl von '·ffnen' erscheint ein Standard-File-Dialog, der die Auswahl eines $C1-Files ermûglicht (QD Picture oder unpacked Bitmap). Die gewÄnschte Datei wird in einem Fenster gezeigt. Es kûnnen bis zu vier Fenster geûffnet werden. Dateien, die von FktGraphik erzeugt worden sind, haben Informationen Äber den Funktionsterm, Zeichenbereich usw. in der Resource-Fork. Findet FktGraphik eine solche Resource, werden die dort abgelegten Einstellungen wirksam. Es gibt aller- dings nur ein Set von Einstellungen im Programm und nicht ein Set pro Fenster, d.h. die zuletzt geladenen oder verÉnderten Einstellungen sind fÄr alle Fenster gÄltig. Mit 'Schlie¤en' kann das oberste Fenster geschlossen werden, 'Alles Schlie¤en' schlie¤t alle Fenster. -> Es ist zu beachten, da¤ der Funktionsterm der zuletzt geladenen Datei fÄr alle offenen Fenster gilt. Werden diese abgespeichert, wird diese Funktion, der letzte Zeichenbereich usw. mit abgespeichert! <- QuickDraw Picture bzw. Bitmap Hiermit kann die Dateiart geÉndert werden, die beim Abspeichern erzeugt wird. Sichern Sichern als... Die Graphik im aktiven Fenster kann hiermit abgespeichert werden. Mit 'Sichern als...' kann man vorher den Dateinamen und den Pfad bestimmen. Die Einstellungen im Programm wie Zeichenbereich, Funktionsterm, Dateinamen usw. werden in der Resource-Fork der Datei abgespeichert. Das beeintrÉchtigt die KompatibilitÉt zu anderen Programmen nicht, die Dateien kûnnen von Apple- Works GS und anderen Zeichenprogrammen geladen werden. Werden sie von diesen Programmen allerdings verÉndert und abgespeichert, gehen diese Informationen verloren. Seitenlayout... Es erscheint der Seitenlayout-Dialog des angewÉhlten Druckers. 'Drucker wÉhlen...' ist nicht mehr vorhanden, da der Drucker jetzt Äber das neue Kontroll- feld ausgewÉhlt werden mu¤. Drucken... Durch die Wahl des MenÄpunktes 'Drucken' kann die Graphik im vordersten (aktiven) Fenster ausgedruckt werden. Es werden alle Drucker unterstÄtzt, die sich auf der Systemdiskette befinden, mit der das Programm gestartet worden ist. Die maximale Auflûsung wird durch den Drucker bestimmt, da QuickDraw- Pictures gedruckt werden. Beenden Hiermit wird das Programm beendet. Die aktuelle Einstellung der FktGraphik- Optionen wird beim Verlassen abgespeichert. ---------------------------------------------------------------------------------- MenÄ Bearbeiten ---------------------------------------------------------------------------------- Widerrufen Ausschneiden Kopieren Einsetzen Lûschen Ist ein Fenster von FktGraphik aktiv, kûnnen folgende Funktionen aufgerufen werden: Mit 'Widerrufen' wird das zuletzt gezeichnete Bild im Fenster gelûscht, 'Lû- schen' lûscht alle Bilder im Fenster. Mit 'Ausschneiden', 'Kopieren' bzw. 'Ein- setzen' kûnnen QD-Pictures zur bzw. von der Zwischenablage (na?!) ausge- schnitten, kopiert oder eingesetzt werden. Von der Zwischenablage kûnnen die Bilder zu gewÄnschten Programmen oder Desk Accessories weitertransferiert werden. Der Inhalt der Zwischenablage wird beim Verlassen von FktGraphik abge- speichert und steht daher fÄr andere Programme zur VerfÄgung. Gehûrt das vordere Fenster zu einem Desk Accessory, hÉngen die Funktionen der MenÄpunkte natÄrlich von diesem ab. Einstellungen... ºber den 'Einstellungen...'-Dialog kann die Zahldarstellung fÄr die Dialoge und die Beschriftung des Koordinatensystems beeinflu¤t werden. Es kann zwischen Flie¤- und Festkomma (1.234e+5 bzw. 123400) gewÉhlt werden und die Anzahl der Nachkommastellen kann bestimmt werden. ---------------------------------------------------------------------------------- MenÄ Graphik ---------------------------------------------------------------------------------- Funktion zeichnen... Es erscheint ein Dialog, der die Festlegung von verschiedenen Parametern er- laubt. Die frei definierbaren Konstanten (siehe 'Funktionsterm') kûnnen hier be- stimmt werden, so da¤ man beispielsweise durch wiederholtes ¥ndern einer Kon- stante eine Kurvenschar zeichnen kann. Mittels dreier Knûpfe ist die Wahl zwischen der Funktion selbst, ihrer ersten oder ihrer zweiten Ableitung mûglich. Die Ein- stellung der Genauigkeit erlaubt einen schnellen ºberblick Äber den Verlauf der Funktion im gewÉhlten Zeichenbereich bzw. eine genaue Darstellung, wenn alle Parameter nach Wunsch festgelegt sind. Bei einer Einstellung von eins wird jeder zehnte Punkt, bei zehn jeder Punkt auf der x-Achse berechnet. Der Zeichenvorgang kann jederzeit durch die Tastenkombination Offener-Apfel- Punkt (Niederhalten der Apfel-Taste und DrÄcken der '.'-Taste) beendet werden. Funktionswert... Hier kûnnen x-Werte eingegeben und die zugehûrigen Funktionswerte berechnet werden. Der Funktionswert wird im Dialog zahlenmɤig angezeigt und kann in die Graphik eingezeichnet werden. Dabei wird ein Zeiger von der x-Achse zum Funktions- wert und zur y-Achse gezeichnet. Filedaten darstellen... FktGraphik ist nur dazu ausgelegt, Funktionsterme mit einer VerÉnderlichen und einer begrenzten Auswahl von trigonometrischen Funktionen zu analysieren und zu berechnen. Es bietet jedoch die Mûglichkeit, Daten von Diskette zu lesen und diese darzustellen. Man kann so eigene Programme zur Lûsung bestimmter Probleme schreiben und die graphische Darstellung mit FktGraphik vornehmen. FktGraphik erwartet ein oder zwei Datenfiles mit 'double' Variablen, die in mehr- komponentigen Arrays abgelegt sind. Es kann festgelegt werden, welche Komponente aus welchem File die x-Werte bzw. die y-Werte enthÉlt. Zum Beispiel kann bei einer Bewegungsgleichung (Anfangswertproblem einer Differentialgleichung) in der ersten Komponente eines Arrays die Zeit, in der zweiten Komponente der zugehûrige Ort, in der dritten die Geschwindigkeit und in der vierten die Beschleunigung abge- speichert werden. Es kann dann z.B. der Ort gegen die Zeit oder die Geschwindigkeit gegen die Beschleunigung aufgetragen werden. ZusÉtzlich ist noch die Umrechnung von Polarkoordinaten (Radius und Winkel) in xy-Werte mûglich. Mit den 'AuswÉhlen...'-Buttons kûnnen die Datenfiles bestimmt werden; dabei kûnnen zwei verschiedene Files oder fÄr beide Komponenten das gleiche File ausgewÉhlt werden. FktGraphik mu¤ mitgeteilt werden, wieviele Komponenten ein Array enthÉlt, da sonst nicht der richtige Abstand beim Lesen der Zahlen eingehalten wird und es zu ulkigen Graphiken kommt. Vor dem Zeichenvorgang sieht FktGraphik die Daten nach den Extremwerten durch und fragt nach, ob der Zeichenbereich entsprechend angepa¤t werden soll. Das ist beim ersten Zeichnen gÄnstig; sollen jedoch mehrere VerlÉufe verglichen und Äber- einander gezeichnet werden, mu¤ man den Zeichenbereich bei der einmal gewÉhlten Einstellung lassen. Es kûnnen Datenfiles von Orca/Pascal und TML-Pascal dargestellt werden; andere wurden noch nicht getestet, dÄrften aber keine Schwierigkeiten machen. Ein Bei- spielprogramm in Orca/Pascal zur Nutzung dieser Funktion ist im Ordner 'FktBilder' enthalten. Funktionsterm... Hier kann der Funktionsterm eingegeben werden. Die maximale LÉnge betrÉgt 255 Zeichen, Gro¤- und Kleinschreibung hat keinen Einflu¤ auf die Auswertung, Leer- zeichen sind erlaubt. Der Term kann wie normaler Text editiert werden, mit control-X, control-C und control-V kann ausgeschnitten, kopiert und eingesetzt werden. Die Auswertung des Terms erfolgt nach den normalen Rechenregeln (Punkt- vor Strichrechnung, KlammerausdrÄcke zuerst usw.), es sind sÉmtliche Grundrechen- arten incl. Potenz ('^') und die im 'ºber FktGraphik...'-Dialog aufgefÄhrten Funk- tionen verwendbar. ZusÉtzlich sind vier frei wÉhlbare (a, b, c, d) und zwei fest- gelegte Konstanten (pi = 3.14159..., e = 2.71828...) verfÄgbar. Findet das Programm einen Fehler, meldet es sich mit einem Pieps und der Eingabedialog erscheint er- neut. Ich denke, da¤ FktGraphik selbst bei geschickter Kombination von Klammern und Funktionen in einem langen Term nicht abstÄrzt, es ist aber nicht in jedem Fall auszuschlie¤en, da die Zerlegung des Terms rekursiv ablÉuft und der Stack nicht beliebig gro¤ gemacht werden kann. Zeichenbereich... Der Zeichenbereich bezieht sich auf die Grenzen des Fensters. Die gewÉhlten Werte haben sowohl fÄr das Zeichnen der Funktion als auch der Filedaten GÄltig- keit. Die seperate Angabe eines Zeichenintervalls auf der x-Achse ermûglicht die Darstellung abschnittsweise definierter Funktionen; der Zeichenintervall mu¤ im Bereich von xMin bis xMax liegen. Mit den Buttons '1:1' und '2:1' bzw. '1:2' wird die obere Grenze des jeweiligen Bereichs abhÉngig vom jeweils anderen so festgelegt, da¤ die Einheiten gleich lang dargestellt werden. FÄr den Bildschirm und den Ausdruck mit 'normal' ist der '1:1'-Button gedacht, fÄr den Ausdruck mit 'condensed'-Option die '2:1'- bzw. '1:2'-Buttons. Achsen & Gitter... Mit diesem Dialog kûnnen die Parameter zum Zeichnen eines Koordinatensystems und eines Koordinatengitters bestimmt werden. Es kann zwischen einem Koordina- tensystem am Rand des Zeichenbereichs und auf den Achsen gewÉhlt werden. Die AbstÉnde zwischen den Marken kûnnen fÄr x- und y-Achse einzeln festgelegt wer- den, genauso wie die AbstÉnde zwischen den Gitterstrichen. Die Checkboxen fÄr Koordinatensystem und Koordinatengitter mÄssen jeweils neu angewÉhlt werden, da das Gitter und das Koordinatensystem am besten einzeln in unterschiedlichen Farben gezeichnet werden sollten. Es ist am sinnvollsten, zu- erst das Gitter zu zeichnen. Die Beschriftung erfolgt an den Markierungen (linksbÄndig). Wenn zwischen den beschrifteten Marken weitere erwÄnscht sind, kann das Koordinatensystem mit kleinerem Abstand und ohne die Beschriftungsoption nochmal gezeichnet werden. Auf dem Bildschirm wird die Beschriftung mit Courier 9 Punkt durchgefÄhrt, Courier 9 Punkt und 18 Punkt sind im FktBilder-Ordner der Diskette vorhanden - wer sie nicht hat, braucht sie nur von da in seinen Systemordner zu kopieren. Auf dem Plotter wird der Standardzeichensatz benutzt, er kann Äber die Plotterbefehle geÉndert werden. 320x100 640x200 Hier kann die Grû¤e der Zeichnung festgelegt werden. Die kleineren Abmessungen sind zum Import der Graphik in ein Textdokument sinnvoll, da nachtrÉgliches Ver- kleinern meist die QualitÉt des Ausdrucks auch von QD-Pictures vermindert und die Anzahl der importierten Daten verringert wird, was den Bildschirmaufbau und den Druck in Textverarbeitungsprogrammen beschleunigt. Wird die Zeichengrû¤e umgeschaltet, wenn schon gezeichnet worden ist, wird die Graphik vergrû¤ert bzw. verkleinert. Beim Verkleinern kann dabei schon mal ein schwarzer Strich verloren gehen, da die StrichstÉrke proportional mitverkleinert wird. ---------------------------------------------------------------------------------- MenÄ Farbe ---------------------------------------------------------------------------------- Mit diesem MenÄ kann eine aus 16 mûglichen Farben ausgewÉhlt werden, die fÄr die nÉchsten Zeichenoperationen benutzt werden soll. Die gewÉhlte Farbe ist fÄr alle ZeichenvorgÉnge gÄltig. ---------------------------------------------------------------------------------- MenÄ Plotter ---------------------------------------------------------------------------------- Einschalten... bzw. Ausschalten Ist der Plotter ausgeschaltet, erscheint ein Dialog, der die Wahl des Plotter- anschlusses ermûglicht. Wird der Plotter eingeschaltet, wird er automatisch initialisiert und skaliert. Die Skalierung wird bei ¥nderung des Zeichenbereiches selbsttÉtig mitgefÄhrt. Es kûnnen nur HP-GL-kompatible Plotter verwendet werden. Befehle... Mit diesem Dialog kûnnen beliebige Kommandos an den Plotter gesendet werden. Es sind alle Befehle von HP-GL verwendbar, es wird aber keine PlausibilitÉts- kontrolle durchgefÄhrt. Bei der Verwendung des Befehls ÇLBÇ zur Beschriftung des Graphen wird automatisch ein EOT angehÉngt, bei den Äbrigen Befehlen der Termi- nator Ç;Ç. ºber ein Popup-MenÄ kûnnen die Zeichenstifte direkt ausgewÉhlt werden. Die Be- stimmung der Farbe mittels dem ÇFarbeÇ-MenÄ hat keinen Einflu¤ auf den Plotter. ---------------------------------------------------------------------------------- MenÄ Fenster ---------------------------------------------------------------------------------- AufrÉumen (Dateinamen) Zum einfachen Umschalten zwischen mehreren Fenstern ist dieses MenÄ vorge- sehen. Die Dateinamen der geûffneten Fenster werden hier aufgefÄhrt, das aktive Fenster ist durch einen Haken gekennzeichnet. Wird 'AufrÉumen' ausgewÉhlt, werden die Fenster Äbersichtlich angeordnet. ---------------------------------------------------------------------------------- Anbindung von FktGraphik an den Finder ---------------------------------------------------------------------------------- Au¤er durch Klicken auf das Programmsymbol lɤt sich FktGraphik noch auf andere Arten starten. Er kann durch ein Doppelklick auf ein oder mehrere zu ûffnende PICT- oder Bitmap-Files oder durch AnwÉhlen der Files und Aktivierung des 'Open'- bzw. 'Print'-MenÄpunktes des Finders aufgerufen werden. Es kûnnen bis zu vier Files gleichzeitig geûffnet werden; wird 'Print' ge- wÉhlt, werden die Dateien sofort gedruckt und wieder geschlossen. Daher kûnnen beliebig viele Dateien hintereinander gedruckt werden. Voraussetzung dafÄr ist, da¤ die Icons fÄr PICT- und Bitmap-Files die Information Äber das zu startende Programm enthalten. Befindet sich FktGraphik zum Beispiel im Ordner 'Programme' auf dem Bootlaufwerk, mu¤ der Pfadname (application pathname) */Programme/FktGraphik lauten. Die Eingabe des Pfadnamens kann mittels eines Icon-Editors vorgenommen werden (MenÄpunkte 'Edit Attributes' oder 'Edit Extended Parameters'). FÄr beide Dateiarten sind Icons beigefÄgt, die nur noch angepa¤t werden mÄssen. Der Filetype ist $C1, der AuxType $0000 fÄr ein Bitmap-File (Super Hi-Res Screen Image), $0001 fÄr ein QuickDraw PICT-File. SelbstverstÉndlich kûnnen mit FktGraphik auch von anderen Programmen erzeugte Bilder dieser Typen dargestellt und gedruckt werden. ----------------------------------------------------------------------------------