home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
500-599
/
ff517.lzh
/
Aequipot
/
Aequipot.anl
< prev
next >
Wrap
Text File
|
1991-07-20
|
13KB
|
302 lines
--------------------------- Aequipot V1.15 --------------------------------
Aequipot ist Copyright 1990, 1991 von Jürgen Matern.
Dies ist ein Programm, das mehrfarbige Grafiken mit einem bestimmten
Algorithmus berechnet.
-------------------------- HINTERGRUND ------------------------------------
Der Algorithmus beschreibt ein Problem der Elektrostatik. Eine elektrische
Ladung baut um sich ein elektrisches Feld auf. Dieses Feld verhält sich
nichtlinear. Bei einer Ladung kann dieses Feld noch gezeichnet werden, bei
mehreren Ladungen ist dies kaum noch möglich. Auf eine Probeladung in
diesem Überlagerungsfeld wirken Kräfte. Linien, auf denen eine Probeladung
bewegt werden kann, ohne Arbeit am System zu verrichten, werden als
Äquipotentiallinien bezeichnet (im dreidimensionalen sind dies
Äquipotentialflächen). Eine Probeladung hat ein bestimmtes Potential
gegenüber den betrachteten Ladungen. Bereiche gleichen Potentials werden
vom Programm mit gleicher Farbe gekennzeichnet. Direkt an den Ladungen wird
nichts gezeichnet, da dort das Potential gegen Unedlich strebt. Das
Programm macht nur quantitative Aussagen.
--------------------------- FEATURES --------------------------------------
* bis zu zwanzig Ladungen
* LoRes- und HiRes-Auflösung möglich
* optimierter Rechenalgorithmus, um Zeit zu sparen
* Übersichtsfunktion, um einen schnellen Einblick in die Grafik zu gewinnen
* arbeitet mit 32, oder 16 Farben, je nach Modus
* Parameterübergabe vom CLI aus
* bei Start von der Workbench werden die Parameter erfragt
* Reperaturfunktion, falls der optimierte Algorithmus Fehler macht
* Script-File-Modus
* Animationsberechnung durch Script-File
* Grafik kann abgespeichert werden
--------------------------- BENUTZUNG -------------------------------------
Es existieren zwei verschiedene Versionen, die PAL- und die NTSC-Version.
Sie sind durch verschiedene Namen gekennzeichnet (AequipotP und AequipotN).
Das Programm kann von der Workbench oder vom CLI aus gestartet werden.
Wird das Programm von der Workbench aus gestartet werden die beiden
benötigten Parameter nacheinander vom Programm erfragt. Hierbei kann der
Script-Modus des Programms nicht benutzt werden!
Steuerung über CLI oder Workbench:
Wird das Programm aus dem CLI heraus gestartet müßen dabei zwei Parameter
übergeben werden, oder es wird der Name der Start-Datei angegeben. Werden
Parameter übergeben, so haben diese folgende Bedeutung: Der erste Parameter
gibt die Bildschirmauflösung an, der zweite, die Berechnungsmethode.
Werden keine, oder falsche Parameter übergeben, wird folgende
Kurzerklärung ausgegeben:
Usage: AEQUIPOT [ScriptFile] OR [ScreenMode RenderingMode]
Where ScreenMode is h(igh) or l(ow)
and RenderingMode is s(low) or f(ast)
and ScriptFile is name of file to start from.
( Hier die Übersetzung:
Benutzung: AEQUIPOT [StartDatei] ODER [SchirmModus RechenModus]
Wobei SchirmModus h(=hoch) oder l(=niedrig)
und RechenModus s(=langsam) oder f(=schnell) sein kann
und StartDatei der Name der Datei ist, von der aus
gestartet werden soll. )
Nach dem Start des Programms wird der entsprechende Schirm geöffnet. Hier
können jetzt mit der Maus Ladungen gesetzt werden. Das Setzen einer Ladung
erfolgt nach Druck auf die linke Maustaste. Sollen keine Ladungen mehr
gesetzt werden muß die rechte Maustaste gedrückt werden. Maximal können
20 Ladungen gesetzt werden. Bei der zwanzigsten Ladung wird automatisch
in den Eingabemodus gesprungen. Jetzt werden nacheinander die einzelnen
Koordinaten der Ladungen angegeben. Es können jetzt positive oder negative
Ladungen eingegeben werden. Es können nur Ladungswerte zwischen -20 und
20 eingegeben werden.
Nach Eingabe aller Ladungen wird die Grafik berechnet. Der Berechnungs-
vorgang wird mit Druck auf die rechte Maustaste beendet. Mit Druck auf die
linke Maustaste kann die Titelleiste ein- und ausgeschaltet werden.
Wurde der Berechnungsmodus f(=schnell) gewählt wird am Ende der Berechnung
gefragt, ob die gleiche Grafik im Modus s berechnet werden soll. Wird <OK>
gewählt, werden alle Koordinaten und Ladungen beibehalten und die Grafik
wird nochmal berechnet. Wird <Cancel> gewählt, wird der Requester
ausgeblendet (dann siehe unten).
Wurde eine Berechnung im Modus s beendet, so wird gefragt, ob eine Reperatur
durchgeführt werden soll. Dies ist nötig, falls der optimierte Algorithmus
einen Fehler gemacht hat (probieren sie z.B. eine Ladung mit den
Koordinaten (73/120) und der Ladung 1 im Berechnungsmodus s und Schirmmodus
l; dann wird klar, was ein Fehler ist). Wird jetzt <OK> gewählt wird mit
der Maus der Bereich ausgewählt, der nochmal berechnet werden soll. Am
oberen linken Eckpunkt wird der linke Mausknopf gedrückt und wieder
losgelassen. Am rechten unteren Eckpunkt wird wieder der linke Mausknopf
gedrückt. Auf dem Bildschirm ist jetzt ein Rechteck zu sehen. Soll dieses
Rechteck neu berechnet werden genügt ein Druck auf den rechten Mausknopf,
soll doch ein anderes Rechteck gewählt werden muß wieder der linke
Mausknopf gedrückt werden u.s.w. Wurde <Cancel> gewählt, so wird nur der
Requester ausgeblendet.
Das Programm wartet jetzt auf den rechten Mausknopf. Mit links kann der
Titel aus- oder eingeblendet werden (z.B. zum speichern). Wurde der rechte
Mausknopf gedrückt, so wird der Screen geschlossen und die Grafik ist
verloren. Um Bilder zu speichern muß jetzt die Taste <s> gedrückt werden. Es
erscheint ein File-Requester, der nach dem Filenamen fragt. Vor dem
Speichern kann mit der Taste <c> noch der Farb-Requester aufgerufen werden,
um die Farben zu verändern.
Steuerung durch ein Script-File:
Ein Script-File wird mit einem beliebigen Editor erstellt (z.B. DME). Im
folgenden werden die Befehle, die im File stehen können immer mit spitzen
Klammern eingeklammert <Befehl>, Parameter zum Befehl werden in eckigen
Klammern dargestellt [Parameter], verschiedene Möglichkeiten werden mit |
getrennt. Bei [h|l] muß also entweder h, oder l angegeben werden. Diese
Klammern dürfen im fertigen File dann aber nicht mehr stehen. Hinter der
Zeile steht, wieviele Parameter vom Parser erwartet werden. Es werden die
folgenden Befehle verarbeitet:
Befehl Parameter Anzahl
<Mode> [h|l] [s|f] 2
<Charge> [LadX] [LadY] [+|- Lad] 3
<AnimateStart> [LadX] [LadY] [+|- Lad] 3
<AnimateEnd> [LadX] [LadY] [+|- Lad] 3
<Frames> [Anzahl Gesamtbilder] 1
<Name> [Namen mit Pfad] 1
<*> keine 0
<Mode> wählt den Berechnungsmodus (siehe oben).
<Charge> setzt die Koordinaten einer Ladung, [LadX] und [LadY], sowie die
Größe der Ladung [Lad]. Das Vorzeichen bei [Lad] muß angegeben
werden!
<AnimateStart> setzt die Anfangs-Koordinaten einer bewegten Ladung, sowie
deren Anfangs-Größe. Parameter analog zu <Charge>.
<AnimateEnd> setzt die End-Koordinaten einer bewegten Ladung, sowie deren
End-Größe. Parameter analog zu <Charge>. Die Befehle <AnimateStart>
und <AnimateEnd> müssen paarweise aufeinander folgen und beziehen
sich dann auf dieselbe Ladung. Es können alle 20 Ladungen animiert
werden.
<Frames> setzt die Anzahl der Bilder, die bei einer Animation berechnet
werden sollen. Z.B. werden bei <Frames> [20] 20 Bilder berechnet.
Während dieser 20 Bilder bewegen sich die jeweiligen animierten
Ladungen von ihrem Start- zu ihrem Endpunkt. Die Ladungsgröße
variiert vom Start- zum Endwert.
<Name> setzt den Namen, unter dem eine Animation, oder ein Einzelbild
gespeichert werden soll. Bei einer Animation werden den einzelnen
Bildernamen automatisch die laufende Bildnummer angehängt. Bei
<Name> [df0:Bilder/Aequipot] wird ein Einzelbild im Unterverzeichnis
'Bilder' auf eine Diskette im Laufwerk 0 unter dem Namen 'Aequipot'
abgespeichert. Bei einer Animation mit 10 Bildern lauten die
Bildernamen 'Aequipot1', 'Aequipot2', ... , 'Aequipot10'.
[Name] darf keine Anführungszeichen, oder Leerzeichen enthalten!
<*> erlaubt es, einen beliebigen Kommentar in das Scriptfile zu
schreiben.
Leerzeilen sind im Script-File nicht erlaubt.
Zwei Beispiel-Files sind in diesem Paket enthalten 'Script1.pot' und
'Script2.pot'.
----------------------- BEKANNTE FEHLER -----------------------------------
* Die NTSC-Version des Programms berechnet im 'Slow'-Modus einen PAL-Schirm
(ich weiß aber noch nicht, wie ich das ändern soll). Das Ergebnis ist
zwar richtig, es wird aber unnötig gerechnet.
* Seit das Programm einen eigenen Mauszeiger benutzt werden bei jedem
Programmaufruf 64 Bytes ChipMem verschluckt, obwohl ich den Pointer mit
FreeMem() wieder freigebe. Ich weiß leider nicht woran das liegt.
----------------- WAS NOCH SO KOMMT (hoffe ich) ---------------------------
* Steuerung über Menüs
* Entfernung der Fehler
------------------------- AUTOR AND COPYRIGHT -----------------------------
Aequipot wurde von Jürgen Matern unter Benutzung des PD-Pascal-Compilers
PCQ V1.1c geschrieben (vielen Dank an Patrick Quaid dafür, daß er diesen
Compiler entwickelt hat). Die ausführbaren Programme, die Quellcodes, die
Icons und die Dokumentationen sind alle:
Copyright © 1990, 1991 by Jürgen Matern.
Ich erlaube hiermit, daß dieses Programmpaket frei verbreitet werden darf,
solange alle Files des Pakets unverändert weitergegeben werden.
Die Files des Pakets sind:
<Aequipot>
- AequipotP (das ausführbare Programm/PAL Version)
- AequipotP.info (das Icon von AequipotP)
- AequipotN (das ausführbare Programm/NTSC Version)
- AequipotN.info (das Icon von AequipotN)
- Aequipot.anl (dieses File hier)
- Aequipot.doc (die englische Dokumentation)
- Script1.pot (erstes Script-File)
- Script2.pot (zweites Script-File)
- InstallLibs (Installationsfile für Libraries)
- InstallLibs.info (das Icon von InstallLibs)
- Message.txt (Nachricht für InstallLibs)
<Source>:
- AequipotP.p (der Quellcode/PAL Version)
- AequipotN.p (der Quellcode/NTSC Version)
- reqlibrary.i (Include-File der req.library)
- ilbm.i (Include-File der ilbm.library)
- process.i (Include-File mit process-record)
Kommentare, Fehler, GELD (wer will), Postkarten, oder alles andere an
folgende Adresse:
Jürgen Matern
Max-Wieland-Straße 13
Herrlingen
W-7906 Blaustein
Federal Republic of Germany
Tel.: 07304-3745
Viel Spaß 8-)
--------------------------- ENTWICKLUNGS-GESCHICHTE -----------------------
V0.?? - 23. Dezember 1990 bis 01. Januar 1991:
- Grundlegende Programmgestaltung.
V1.0 - 02. Januar 1991:
- Erste veröffentlichte Version.
V1.01 - 16. Januar 1991:
- kleinere Veränderungen.
- Parameterübergabe vom CLI aus.
- aber kein WorkBench-Start mehr.
V1.02 - 21. Januar 1991:
- kleinere Veränderungen.
- sqrt durch SPSqrt ersetzt; dadurch fast doppelt so schnell.
V1.03 - 26. Februar 1991:
- kleinere Veränderungen.
- Quellcode aufgeräumt.
- bis zu 20 Ladungen werden berechnet.
V1.04 - 27. Februar 1991:
- Reperaturfunktion eingefügt.
- Feinberechnung nach Überblick mit gleichen Koordinaten.
V1.05 - 01. März 1991:
- Programm kann wieder von der Workbench gestartet werden.
V1.06 - 06. März 1991:
- Einbau von zwei Auto-Requestern (Reperatur, Feinberechnung).
- Reperatur-Funktion und Fast-Drawing wurden zusammen in einer
Prozedur untergebracht (Prog. 700 Bytes / Quellc. 1.3 K kürzer).
V1.07 - 29. März 1991:
- Das Programm benutzt jetzt immer den Zeichensatz 'Topaz 80' (hat
bis jetzt zu Problemen geführt, wenn auf der WorkBench 'Topaz 60'
von den 'Preferences eingestellt war).
- Benutzt einen eigenen Mauszeiger.
- Die Programmlänge ist geschrumpft, weil ich einige Definitionen in
Konstanten statt Variablen untergebracht habe (Alle IntuiTexte,
Screen- u. WindowDef.).
V1.08 - 05. April 1991:
- SystemRequester werden auf meinen Screen umgeleitet.
- Farben können mit dem ColorRequester aus der 'req.library' geändert
werden.
V1.09 - 06. April 1991:
- Bilder können im IFF-ILBM-Format abgespeichert werden (Benutzung
der Routine 'SaveWindowToIFF' aus der 'ilbm.library').
- Filenamen wird mit Hilfe des FileRequesters aus der 'req.library'
eingelesen.
V1.10 - 06. April 1991:
- Implementierung des Parsers zum Lesen von Script-Files. Ein Teil
der geplanten Befehle wird aber noch nicht verarbeitet.
V1.11 - 07. April 1991:
- Alle Script-Befehle arbeiten einwandfrei.
V1.12 - 23. April 1991:
- Animationsbefehle hinzugefügt.
V1.13 - 12. Juni 1991:
- Kommentarbefehl '*' hinzugefügt.
V1.14 - 23. Juni 1991:
- Arbeitet endlich mit 'MemGuard' zusammen.
V1.15 - 28. Juni 1991:
- Ladungseingabe im Grafik-Schirm.
- Kleinere Fehler entfernt.
Letzte Änderung am 29. Juni 1991.