Zhu3D Hilfe
Überblick
Mit Zhu3D lassen sich Funktionen,
Isoflächen sowie ein unabhängiges
Parametersystem interaktiv darstellen und animieren. Der
OpenGL-Betrachter unterstützt Zoomen, Verschieben oder Rotieren
ebenso wie eine ausgefeilte Lichtsteuerung oder
Oberflächeneigenschaften. Spezialeffekte sind Morphing, Transparenz,
Texturen, Nebel und
Bewegungsunschärfe. Numerische Lösungen eines
Gleichungssystems werden mit einem schnellen und
präzisen "Adaptive Random-Search"-Algorithmus ermittelt.
Inhalt
Konfiguration
Beim ersten Start ist Zhu3D für einen kleinen Bildschirm
mit 1024x768 Punkten optimiert. Der Grund dafür sind die
vielen Anwender, welche Notebooks oder TFT's mit dieser Auflösung benutzen. Fenstergrößen, ihre
Position, Icons in der Werkzeugleiste oder
der verwendete Zeichensatz lassen sich jedoch frei konfigurieren.
Alle aktuellen Einstellungen werden automatisch als Standard
gesichert - so lange, bis sie erneut Änderungen vornehmen. Die
Einstellung des Zeichensatzes und der Icons erfolgt unter "Einstellungen/Allgemein".
Durch Überschreiben der beiden Systemdateien "startup.zhu" und
"benchmark.zhu" können sie den Startbildschirm oder den Benchmark
individuell gestalten.
Die Sprachauswahl für die Menüsteuerung und die
Hilfedatei hängt davon ab, was Zhu3D beim Programmstart vorfindet.
Findet es lokalisierte Varianten, die zu Ihren Systemeinstellungen
passen, werden diese automatisch verwendet. Wenn nicht, wird so lange
Englisch verwendet, bis Sie die Spracheinstellungen
ändern. Englisch ist kurz und prägnant,
wodurch eventuell die
Verwendung kleiner TFT's erleichtert wird.
Wenn Sie Zhu3D nicht selbst
kompiliert haben sondern mit einem
Distributor-Paket (RPM. APT, ...) installiert wurde, haben Sie in
den Standardverzeichnissen für Arbeit und
Texturen möglicherweise keine Schreibberechtigung. Kopieren
Sie diese an einen geeigneten Platz und setzen Sie mit mit dem
Menü "Einstellungen/Verzeichnisse" beide neu. Die
Neudefinition der Standardverzeichnisse kann auch nach einem Update
auf eine neuere Zhu3D-Version notwendig sein. Kontrollieren Sie
diese Verzeichnisse am besten nach jeder Installation.
Inhalt
Wichtige Hinweise
Von zentraler Bedeutung ist die farbigen Schaltfläche links
unten. Damit können Sie zwischen Funktionen,
Isoflächen und Parametersystem wechseln. Die Skalierung
und andere Operationen bezieht sich auf den jeweils aktuellen
Modus. Jeweils "unmögliche" oder sinnlose Operationen
werden ausgeblendet um Fehlbedienungen zu minimieren.
Durch die Beschränkung der Bildschirmgröße haben einige
Fensterelemente oder Regler nur abgekürzte Namen oder
sind "scheinbar" namenlos. Das Schema folgt
gängigen Konventionen: Richtungsschieberegler bezeichnen von
links nach rechts jeweils XYZ. Für Licht oder Oberflächen
gilt dasselbe für RGBA. Dieses Kürzel steht für
rote, grüne und blaue Lichtanteile und den Alpha-Kanal. Beachten
Sie, dass jedes Fensterelement und jeder Regler einen Tooltipp
anzeigt, der weitere Details erklärt!
Inhalt
OpenGL-Basics
Für Einsteiger, die mit Computergraphik nicht vertraut sind:
Die mit Abstand wichtigste Licht/Oberflächeneinstellung ist der
diffuse Anteil, gefolgt vom Umgebungslicht. Mit diesen beiden
Einstellungen lassen sich die gebräuchlichsten
Aufgaben erledigen.
Inhalt
Animation und Morphing
Intern unterscheidet Zhu3D nicht
zwischen der statischen
Darstellung und der Animation. Sie können alle Einstellungen
und Interaktionen
beliebig in beiden Modi vornehmen. Die Parameter für
die Animation
werden über "Editoren/Animation" festgelegt. Unter Linux
reagiert die Darstellung der GPU/CPU-Auslastung
seidenweich und ist daher ziemlich genau. Im Animations-Editor
zeigt der Fortschrittsbalken hauptsächlich die GPU-Auslastung an.
Der Morphing-Editor hingegen zeigt im wesentlichen die Auslastung
der CPU an.
Ebenso wie die Animation ist Morphing in allen
verfügbaren Modi transparent anwendbar. Was bedeutet Morphing
mathematisch gesehen? Ein "Morphing-Wert" wird innerhalb der vom
Benutzer festgelegten Grenzen automatisch verändert. Für
Isoflächen heißt das konkret, dass der Iso-Wert
verändert wird. Bei expliziten Funktionen verändert sich der
z-Wert, was zu "Pump-Effekten" in der z-Ebene führt. Bei
Parametersystemen wird ebenfalls der z-Wert verändert. Hier
führt Morphing jedoch zu einem automatischen Zoom-Effekt.
Inhalt
Benchmark
Der Benchmark läuft unabhängig vom System fünf
Sekunden lang. Um die Resultate vergleichbar zu machen,
werden alle anderen Bildelemente ausgeblendet und die
Fenstergröße der Graphik normiert. Nach
einem Benchmark-Lauf wird der ursprüngliche Zustand
automatisch wieder hergestellt.
Inhalt
Die Maus
Wenn Sie auf das Graphik-Fenster klicken, können Sie die Maus wie folgt benutzen:
- mit der linken Taste wird die Graphik rotiert
- die rechte Taste bewegt dass Messkreuz
- mit der mittleren Taste (hinauf/hinunter) wird gezoomt
- linke und rechte Taste gemeinsam verschieben die Graphik in alle Richtungen
Inhalt
Dateien speichern
Beim Abspeichern wird jeweils der komplette aktuelle
Zustand gesichert. Wenn der Animationsmodus eingeschaltet
ist, bleiben
auch dessen Einstellungen erhalten. Eine solche Datei wird
beim Laden die Animation mit der gespeicherten Geschwindigkeit
abspielen, zumindest
wenn der Rechner schnell genug ist. Das Dateiformat
ist transparent: zhu-Dateien können mit jedem Texteditor
angesehen oder geändert werden. Wenn Sie beim Abspeichern keine spezifische Endung (wie .zhu, .png oder
.jpg) angeben, wählt das Programm abhängig von der Situation
automatische eine passende aus.
Inhalt
Bilder speichern/drucken
Die Parameter werden in "Einstellungen/Bild" gesetzt. So ferne Ihr
System das unterstützt, können Bilder in den
Formaten PNG, JPG, PDF oder PostScript abgespeichert
werden. Weitere Einstellungen sind Bildgröße und
Bildqualität. Ein Schnappschuss wird
durch "Datei/Speichere Bild" ausgelöst.
Der Render-Vorgang kann - speziell bei großen Bildern und
langsamen Rechnern - längere Zeit beanspruchen. Für das
Drucken ist lediglich die Einstellung der Bildgröße
relevant.
Für die Bildqualität von JPG und PNG ist ein Wert von 85 ein sinnvoller
Kompromiss und daher voreingestellt. Werte zwischen 90 und 100
blähen die Dateien zumeist nur unnötig auf. Nach
dem Rendering und wenn die XY-Werte gesperrt werden,
wird die Bildgröße automatisch auf die aktuellen
Dimensionen des Graphik-Fensters zurückgesetzt. So bleiben
die Proportionen zwischen Bildhöhe und Breite erhalten.
Inhalt
Gleichungslöser
Zum numerischen Lösen eines Gleichungssystems muss Zhu3D mit
einem plausiblen Startpunkt für seine internen Berechnungen
versorgt werden. Dazu wird das Messkreuz "relativ nahe" zu einer
möglichen Lösung bewegt.
Der Lösungsvorgang selbst wird mit dem entsprechenden
Knopf in der Werkzeugleiste gestartet. Kurz darauf erhalten
Sie einen ausführlichen Bericht. Zusätzlich wird - sofern das
Ergebnis zuverlässig ist - das Messkreuz auf den
Lösungspunkt gesetzt.
In schwierigen Fällen kann das Finden eines Startpunkts erleichtert werden, wenn Sie:
- für die Funktionen kontrastierende Oberflächen verwenden
- XY wie benötigt skalieren und Z scharf hinunter skalieren
So erhalten Sie einen "flach
gedrückten" Funktionen-Graph, bei dem die möglichen
Lösungen sofort ins
Auge springen. Im Arbeitsverzeichnis finden sich neben
"solver.zhu" weitere Beispiele, die einfache Lösungen
aufweisen. Im Parameter- oder Iso-Modus macht das Lösen keinen Sinn und wird daher automatisch
abgeschaltet.
Die Genauigkeit der Lösung wird unter
"Einstellungen/Allgemein" festgelegt und beträgt maximal
15 Stellen. Falls der Löser wiederholt scheitert, reduzieren Sie die Stellenanzahl.
Inhalt
Transparenz
Die Licht- und Oberflächeneditoren sind durchgehend mit
einem Schieberegler für den Alpha-Kanal ausgestattet.
Normalerweise beeinflussen diese die Darstellung nicht und sind daher
standardmäßig auf 255 gesetzt. Die Ausnahme bilden
transparente Graphen. Um diesen Effekt zu kontrollieren, öffnen
Sie den Oberflächeneditor und ändern Sie die
Alpha-Kanäle des diffusen Lichts.
Wenn in den globalen Lichteinstellungen der Zweiseitenmodus
eingeschaltet ist, müssen die Alpha-Werte für die
Vorder- und die Rückseite geändert werden, um einen Effekt zu
beobachten. Zur Vereinfachung können Sie den globalen Modus
auf einseitig
umstellen.
Inhalt
Spezialeffekte
Texturen liegen standardmäßig im Verzeichnis
./work/textures
und können folgenden Formate haben: PNG, JPG, TIF, BMP, XBM, XPM, PPM, PBM oder PGM.
Sowohl Breite als auch Höhe müssen eine Potenz von zwei
sein. Texturen können vertikal gespiegelt werden. Sinnvoll ist
das, wenn Sie Rückseiten betrachten oder Parametersysteme
darstellen, wo Vorderseiten und Rückseiten wechseln können.
Aktuell werden Texturen nicht mit Zhu3D-Dateien gespeichert. Wenn
eine Datei mit Texturen geladen wird, versucht das Programm diese im
Standard-Texturverzeichnis zu finden.
Nebel kann verwendet werden, wenn der Graph zu sehr leuchtet oder
zu sehr wie eine perfekte Computergraphik wirkt. Die Modi "Exp" und
"Exp2" sind einfach zu benützen, der Modus "Linear"
bringt jedoch deutlich ausgefeiltere Ergebnisse. Mit den
Start/Stop-Schiebereglern lassen sich Position,
Dichte und Verlauf des Nebels sehr genau einstellen. Sehr
hilfreich ist die "Sync"-Schaltfläche in der Farbbox. Damit
lassen Nebelfarbe und Hintergrundfarbe synchronisieren, was
normalerweise die besten Resultate zeigt.
Die Schieberegler für die Bewegungsunschärfe beeinflussen sich
teilweise gegenseitig. Je mehr Iterationen berechnet werden, desto
größer kann das Ausmaß des Unschärfe-Effektes
werden, bevor der Graph zu dunkel wird. Der Verschiebungs-Offset
je Iteration reagiert unabhängig von den beiden
vorher genannten Einstellungen.
Inhalt
Lichtquellen
Zhu3D hat bis zu acht voneinander unabhängige Lichtquellen. Die
Ausgangspositionen der Quellen sind die Ecken des
"Normalwürfels". Die Quellen 0..3 kann man sich dabei als
Vordergrundlicht vorstellen, 4..7 als Hintergrundlicht. Die
Einstellungen sollten weitgehend selbsterklärend sein und werden
in "Editoren/Lichtquellen" vorgenommen.
Etwas trickreicher ist das Scheinwerferlicht, das gleich von mehreren
Faktoren abhängt. Das "Einfangen" dieses Lichts lässt
sich wie folgt erleichtern: Stellen Sie zuerst die Schieberegler
für den Strahlwinkel und die Intensität auf ihr Maximum.
Reduzieren Sie anschließend den Winkel langsam und versuchen
Sie
mit den Richtungsreglern die grobe Position festzulegen. Danach
können Winkel, Intensität und
Strahlerposition fein justiert werden. Natürlich ist die
Scheinwerfer-Einstellung auch vom allgemeinen Abstandsregler
abhängig, der die Distanz zum Nullpunkt festlegt. Sehen
Sie sich das Beispiel "spotlights.zhu" an, bei dem die komplexen
Zusammenhänge schnell sichtbar werden.
Beim globalen Licht ist die Einstellung "Unendlich"
erwähnenswert, die die Lichtquellen ins Unendliche
rückt. Der Entfernungsschieberegler, der
Strahler und die
Abschwächung können nicht eingestellt werden und
sind daher automatisch ausgeblendet. Dieser Modus ist
z.B. für die Darstellung flacher Graphen sinnvoll. Zu
dunkle Graphen lassen sich schnell mit dem globalen
Umgebungslicht aufhellen.
Inhalt
Oberflächen
Diese Einstellungen sind weit gehend selbsterklärend.
Erwähnenswert ist das Glanzlicht. Damit die Oberflächen
diesen Effekt tatsächlich zeigen, muss mindestens eine Lichtquelle
natürlich auch einen Glanzlichtanteil abstrahlen! Normalerweise
behält Zhu3D alle gerade
aktuellen Oberflächeneinstellungen bei. Wenn Sie jedoch in
den globalen Einstellungen den Modus von zweiseitig auf einseitig
ändern, schaltet auch der Oberflächeneditor
automatisch auf die Bearbeitung der Vorderseite um.
Inhalt
Tipps zur Skalierung/Ansicht
Mit den X- und Y-Schaltflächen werden die gleichnamigen Achsen
skaliert. Mit A(lle) werden alle Achsen zusätzlich auf die selbe
Länge normiert, um den Graph verzerrungsfrei
darzustellen. Wenn die Darstellung aus dem Bildbereich
hinaus ragt, skalieren sie die Z-Werte scharf hinunter. Das gleiche
gilt, falls in extremen Grenzbereichen die Tessellation
fehlerhaft werden sollte. Ihr Bildschirm ist nur
zweidimensional. Rotationen um die Z-Achse können daher nur
mit dem Z-Regler im Hauptfenster durchgeführt werden.
Einen gewissen Einfluss auf das Erscheinungsbild haben auch die
Dreieck/Quadrat-Tessellation sowie das zugrunde
liegende Raster. Die Skalierungsgenauigkeit und Geschwindigkeit
wird unter "Einstellungen/Skalierung" festgelegt.
HINWEIS: Halten Sie zum schnelle Skalieren einfach die Maustaste
gedrückt, anstatt die Schaltflächen
wiederholt anzuklicken.
Inhalt
Funktionseditor und Parser
Änderungen im Editor werden erst nach Drücken der
<Return>-Taste wirksam. Findet der Parser im Ausdruck
Syntaxfehler, erhalten Sie eine entsprechende Rückmeldung. Die Eingabe toleriert Leerzeichen und unterscheidet
nicht zwischen Groß- oder Kleinschreibung. Folgende Funktionen, Operatoren
und Konstanten werden vom Parser erkannt:
+, -, *, /, %, ^, sin(), cos(), tan(), asin(), acos(), atan(),
sinh(), cosh(), tanh(), asinh(), acosh(), atanh(), cot(), csc(), sec(), int(), frac(),
floor(), ceil(), mod(a,b), exp(), pow(a,b), log(), log2(), log10(), sqrt(), abs(),
sig(), rnd(interval), gamma(), min(a,b), max(a,b), $pi (=3,14..), $e
(=2,71..), $c (=299792458 m/s). Kommentare starten mit #.
Spezielle Operatoren sind if(a,b,c), &, |, !, <, >, <=,
>= sowie die Rekursionsfunktion eval(...). Die if-Abfrage if(a,b,c)
kann als "Wenn Bedingung a erfüllt, dann Ausdruck b sonst Ausdruck c"
gelesen werden. Die boolschen Operatoren Und, Oder und Negation ($,|,!)
können verwendet werden, um komplexere if-Abfragen zu formulieren.
Beispiele für Abfragen, spezielle Operatoren und Rekursionen
finden sie im "work"-Verzeichnis.
Die Fehlerbehandlung wird von Zhu3D in Teilbereichen etwas gelockert. So werden auch Funktionen wie sqrt(x) oder
1/x darstellbar, die andernfalls Fehler wie "Negative Wurzel"
oder "Division durch Null" melden würden. In Zweifelsfällen
benutzen Sie syntaktisch korrekte Ausdrücke wie
z.B. sqrt(abs(x)).
Der Editor
unterstützt die Klemmbrettfunktionen Copy, Cut und Paste sowie Undo/Redo.
Inhalt
Benutzerdefinierte Einträge
Um eigene Funktionen oder Konstanten zu
erzeugen, öffnen Sie das
Menü "Editoren/Benutzerdefiniert". Danach erhalten Sie eine
einfache Tabelle, in der Sie Ihre Definitionen vornehmen können.
Einträge müssen ein Gleichheitszeichen und einen eindeutigen
Namen enthalten. Gleichnamige Funktionen, die sich lediglich durch
die Anzahl der Parameter unterscheiden, sind nicht zulässig!
Nehmen Sie Ihre Definitionen sorgfältig vor. Da
diese verschachtelt werden können oder selbst rekursiv
möglich sind, ist es empfehlenswert die Einträge linear und
ausgehend von Zeile 1 vorzunehmen. Mit einem Rechts-Klick der Maus
können Sie schnell leere Zeilen oder Kommentarzeilen löschen
beziehungsweise leere Zeilen einfügen.
HINWEIS: Sehen Sie sich die "usrdef"-Beispieldateien an, die viele einfache und komplexere Beispiele enthalten.
Inhalt
Implizite Funktionen und Isoflächen
Diese haben allgemein die Form 0=f(x,y,z) während für
"normale" Funktionen z=f(x,y) gilt. Implizite Funktionen haben
gegenüber normalen Funktionen oder Parametersystemen einige
Vorteile. Komplexe Funktionen lassen sich so beispielsweise
einfacher darstellen. Implizite Funktionen beschreiben ein
räumliches Skalarfeld und werden als so genannte Isoflächen
abgebildet. Für die Darstellung dieser Isoflächen verwendet
Zhu3D verschiedene volumenbasierte Algorithmen. Unter
"Einstellungen/Allgemein" können diese ausgewählt
werden.
HINWEIS: Ein dichtes Raster kann sehr lange Rechenzeiten
benötigen.
Inhalt
Parametersystem
Hier fällt vor allem der Bedeutungswechsel ins Auge. Anstelle von
drei unabhängigen Funktionen in x und y bearbeiten Sie jetzt
ein einziges System mit den Parametern s und t, dessen einzelne Werte
durch die Funktionen X(s,t), Y(s,t) und Z(s,t) bestimmt werden. Einem
Bedeutungswechsel unterliegt auch die Skalierung. Anstelle
der x-Werten wird jetzt z.B die Funktion X(s,t) skaliert.
Das Standardintervall von s und t ist [-1,1], was durch die
Skalierung von X und Y geändert werden kann. Bei
Parametersystemen ist eine unendliche Anzahl von gleichen
Z(s,t)-Werten - sozusagen das Pendant zu herkömmlichen Z-Werten -
möglich. So können beispielsweise Vordergründe und
Hintergründe von Oberflächen ineinander übergehen
oder einander mehrdeutig überlappen. Damit die
Tessellation in solchen Fällen fehlerfrei durchgeführt werden
kann, reduzieren Sie die Skalierung von X und/oder Y auf das
notwendige Minimum. Die A(lle)-Skalierung bezieht sich jetzt auf
die Gesamtgröße des Graphen.
Beispiele wie das Möbius'sche Band "moebius.zhu" verdeutlichen die
Mechanismen. Wenn Sie statt Flächen Kurven betrachten wollen,
müssen Sie dazu zwingend den Punktmodus setzen. Ein Beispiel
dafür ist "curve.zhu".
Inhalt
Beschriftungs-Editor
Die ersten drei Einträge sind für die
xyz-Labels der Achsen reserviert, alle anderen für allgemeine
Labels. Der Unterschied ist, dass xyz-Label perspektivisch
dargestellt werden, die anderen jedoch statisch. Der Einfachheit halber
verändert ein Farbwechsel eines xyz-Labels auch die Farben der
anderen sowie die der Achsen.
Einträge in der
Spalte "Größe" können mit einem Doppelklick bearbeitet
werden. So können Fontgrößen auch ohne
Tatstatur-Interaktion bearbeitet werden. Um einen Eintrag schnell zu
verschieben, klicken Sie auf die Schaltfläche "Maus sperren".
Diese Aktion bezieht sich, wie alle anderen auch, auf den jeweils
selektierten Eintrag. Zur Bequemlichkeit kann die Maus auch durch einen Rechts-Klick im Betrachter wieder entsperrt werden.
Inhalt
Tastenkürzel
Im Programm sind einige weitere Tastenkürzel der Form
<Strg-Buchstabe> implementiert. Unabhängig von
Lokalisierungen sind U,D,L,R,+, - verfügbar. Die
Buchstaben stehen für Up, Down, Left, Right, Zoom in und Zoom
out.
Inhalt
Wer ist Zhu?
Der Namenspatron von Zhu3D ist der Mathematiker Zhu Shijie.
Der Chinese war der Erste, der rund 1300 nach Christus ein
komplexes nichtlineares Gleichungssystem gelöst hat. Das
historische Glanzstück findet sich unter den Beispielen und
heißt natürlich "zhu.zhu".
Anmerkung: Shijie hat damals
eine zweite
nichttriviale Lösung nicht angeführt, weil diese
negative
Vorzeichen hat. Das Grund dafür war eine unvollständige
Vorstellung über den Zahlenraum, die erst Jahrhunderte
später endgültig überwunden wurde. Mit Zhu3D kann diese
zweite Lösung auf Anhieb gefunden werden:-)
Nicht besonders spektakulär -
zumindest nach optischen Maßstäben - ist "ninebooks.zhu". Dieses Beispiel stammt aus den "Neun Büchern",
ein mathematisches Meisterwerk, das rund 200 vor
Christus in China veröffentlicht wurde. Die alten Chinesen haben
dieses lineare System mit einem ähnlichen Algorithmus gelöst,
den der berühmte Mathematiker Carl Friedrich Gauss erst 2000
Jahre später wieder entdeckt hat.
Zum Vergleich dient das Beispiel "diophant.zhu",
das im griechischen Lehrbuch "Arithmetika" 450 Jahre nach den
"Neun Büchern" publiziert wurde. Die
Lösung dieses einfachen Systems ohne Koeffizienten gelang dem bekannten Mathematiker
Diophant.
Inhalt
