Zhu3D Zhu3D Hilfe


Überblick

Konfiguration
Wichtige Hinweise
OpenGL-Basics
Animation und Morphing
Benchmark
Die Maus
Dateien speichern
Bilder speichern/drucken
Gleichungslöser
Transparenz
Spezialeffekte
Lichtquellen
Oberflächen
Tipps zur Skalierung/Ansicht
Funktionseditor und Parser
Benutzerdefinierte Einträge
Implizite Funktionen und Isoflächen
Parametersystem
Beschriftungs-Editor
Tastenkürzel
Wer ist Zhu?


 

Ü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, nicht-triviale Lösung nicht angeführt, weil diese ein negatives 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" rund 450 Jahre nach den "Neun Büchern" publiziert wurde. Die Lösung dieses einfachen Systems ohne Koeffizienten gelang dem bekannten Mathematiker Diophant. Inhalt


Valid HTML 4.01 Strict

Document made with Nvu