/scratch/h0052aah/avs
auf der Convex ("joker"), kann man sich Programme holen, die es gestatten, eine Verbindung
zwischen Mathematica und AVS über MathLink herzustellen. Zwischen diesen beiden
Programmsystemen können Daten ausgetauscht und aus Mathematica 3D-Grafiken exportiert werden.
Es ist günstig, eine eigene .avsrc zu erstellen, so daß die zur Verfügung
gestellten AVS-Moduln field2 from math, field3 from math, geom from math und field2 to math
automatisch geladen werden. Ein Muster für .avsrc steht im obigen Directory. Nach dem
Start von AVS durch
setenv DISPLAY `hostname`:0
cd /scratch/h0052aah/avs
avsstart
erscheint das AVS-Anfangsmenü. Nach dem Aufruf von Network Editor wird mit dem Knopf Read Network ein File-Browser sichtbar. Durch Auswahl von field3.net erhält man ein vorgefertigtes Beispielnetzwerk. Mit diesem Netzwerk wird der Modul field3 from Math geladen, der ein Mathematica-Fenster öffnet, in dem schon einige Voreinstellungen für die Kommunikation realisiert sind. Es sind dem Modul entsprechend zusätzliche Packages geladen, z.B. bei field3 from math das Paket :
AVSOutputField3`
Die neuen Pakete bekommt man mit dem Kommando $ContextPath und in unserem Beispiel die neu verfügbaren Kommandos mit ?AVSOutputField3`* , es sind:
AVSLinkName AVSWriteField FieldTable.
Im Mathematica-Fenster kann man in der üblichen Weise 3dimensionale Listen erzeugen, die etwa eine Fläche im Raum darstellen, und dann mit dem Kommando AVSWriteField[liste] exportieren. In unserem Mathematica-Fenster kann mit
In[1]:=<<example3.m
ein Beispielprogramm, das man sich mit !!example3.m ansehen könnte, gestartet werden, und mit
In[2]:=AVSWriteField[data]
wird anschließend die berechnete Liste data nach AVS exportiert. In dem Fenster mit der
Bezeichnung AVS geometry viewer werden Isoflächen der Liste data
dargestellt.
Die Liste data enthält Berechnungen der Funktion
x4 + y4 + z4 - (xy)2 - (xz)2 - (yz)2
3in äquidistanten Raumgitterpunkten.
Lädt man geom from Math, so ist in dem zugehörigen Mathematica-Fenster die
Displayvariable $DisplayFunction auf
AVSExportGeometry
gestellt. Erzeugt man eine 3D-Grafik, so wird durch die im Hintergrund wirkende Ersetzungsregel
DisplayFunction->$DisplayFunction
die Grafik sofort über Mathlink nach AVS exportiert. Dabei ist zu beachten, daß die
Convex nur den Motif-Windowmanager unterstützt und die Farbe der Grafik verlorengeht, weil in
Mathematica nur die Stellung der Flächenelemente zu den Lichtquellen für die Einfärbung
bestimmend ist.
Um das Ganze zum Laufen zu bringen, haben wir einen Hinweis in den Beschreibungen verwirklicht und in der
libML.a wegen Namenkonflikts string_to_argv durch MLring_to_argv ersetzt. Alle
Beispiele liefen bei uns einwandfrei, und man kann einschätzen, daß diese Verbindung von AVS und
Mathematica sehr sinnvoll ist, weil die professionellen grafischen Möglichkeiten von AVS in Mathematica
fehlen oder sehr viel Zeit kosten. Mit Mathematica lassen sich auf elegante Weise Datenfelder erzeugen, die dann
mit AVS visualisiert werden können. Beide Pakete ergänzen einander in idealer Weise.
Bernhard Barz
Hans-Joachim Spitzer
9.1.95 / cs
Last Update: 9.1.95, 15:15 , cs