View3D    Eingabesprache

Home

Der Aufbau der V3D-Dateien ist zeilenorientiert, das heißt pro Zeile kann (höchstens) eine V3D-Anweisung stehen. Es ist nicht möglich, eine Anweisung auf mehrere zeilen zu verteilen.

Kommentare beginnen mit einem Semikolon und gehen bis zum Zeilenende.

Zahlen können sowohl ganze (Dezimal-)Zahlen oder auch reelle Zahlen (mit '.', Exponent mit 'e' oder 'E') sein.

Farben werden als RGB-Werte angegeben: 3 ganze Zahlen im Bereich 0..255, die (in dieser Reihenfolge) die Grundfarbenanteile für Rot, Grün und Blau angeben.

Es wird ein linkshändiges Koordinatensystem verwendet. Im Defaultzustand zeigt die x-Achse nach rechts, die y-Achse nach unten und die z-Achse zum Betrachter.

Es folgt die Liste der V3D-Anweisungen. Dabei werden Anweisugen, die interaktiv verwendbar sind, mit ° gekennzeichnet, Anweisungen die nur interaktiv verwendet werden können, mit °°. (Die °-Zeichen sind nicht Bestandteil der Anweisungen.)

v3d 2

Version der Eingabesprache. Diese Angabe ist zwingend und muss im V3D-File erfolgen. Damit soll (später) Rückwärtskompatibilität der V3D-Files ermöglicht werden.


vertex N X Y Z

definiert einen (Eck-)Punkt im Netzwerk. X, Y und Z sind die Koordinaten, N ist eine (ganzzahlige) Nummer.


cone M N D V ...

definiert einen Kegelstumpf (=Segment), der zwei Vertices miteinander verbindet. M und N sind die beiden vertex-Nummern. D ist der mittlere Durchmesser des Segmentes. V ist die Geschwindigkeit an dieser Stelle. Es können weitere Parameter angegeben werden. Die Anzahl der Parameter muss in allen cone-Anweisungen die Gleiche sein.


sphere X Y Z P1 P2 ...

definiert eine Kugel am Punkt (X,Y,Z). P1, P2, ... sind (optionale) Parameter. Die Anzahl der Parameter muss in allen sphere-Anweisungen die Gleiche sein.


color Colorname  R0 G0 B0  R1 G1 B1  R2 G2 B2 ...

definiert eine Farbtabelle. Colorname ist ein beliebiger String, der dann in map-Anweisungen verwendet werden kann, um diese Farbtabelle zu benutzen. Es können beliebig viele Farben angegeben werden, mindestens eine ist jedoch erforderlich.


map cone Parameter {lin|log|dis} Colorname Val1 Val2 Val3 ...

Mit dieser Anweisung wird die Färbung der Segmente festgelegt.
Parameter gibt den Parameter an, der die Farbe bestimmt. Folgende Angaben sind möglich: 'X', 'Y', 'Z', 'D', 'V', 'N' oder eine ganze Zahl. Ein Buchstabe bezeichnet den entsprechenden Parameter, eine Zahl bezeichnet einen Parameter nach V. '1' ist der erste Parameter in der cone Anweisung nach V, '2' der zweite usw.. 'N' ist der letzte Parameter (normalerweise die sogenannte Segmentnummer).
Für die Farbdarstellung wird die angegebene Farbtabelle (Colorname) verwendet. Die Zahlenwerte Val1, Val2, ... werden den Farben aus der Farbtabelle zugeordnet: Val1 erhält die Farbe1 (R1 G1 B1), Val2 erhält die Farbe2 (R2 G2 B2) usw. Zwischen den Werten wird interpoliert. Liegt der Wert des Paramters außerhalb des Bereiches,  dann wird Farbe0 (R0 G0 B0) verwendet.
lin bzw. log wählt lineare bzw. logarithmische Interpolation aus. Mit dis kann eine diskrete Farbzuordnung erzeugt werden, d.h. es werden nur die in der Farbtabelle angegebenen Farben verwendet - ohne Interpolation.
Es müssen mindestens zwei Werte angegeben werden, mit der folgenden Ausnahme: Als Parameter kann auch '0' angegeben werden, dann wird konstant die Farbe 0 (R0 G0 B0) verwendet; Werte werden dann nicht gebraucht.


map sphere color Parameter {lin|log|dis} Colorname Val1 Val2 Val3 ...

Mit dieser Anweisung wird die Färbung der Kugeln festgelegt.
Parameter gibt den Parameter an, der die Farbe bestimmt. Folgende Angaben sind möglich: 'X', 'Y', 'Z', oder eine ganze Zahl. Ein Buchstabe bezeichnet den entsprechenden Koordinatenwert, eine Zahl bezeichnet einen Parameter der sphere Anweisung. '1' ist der erste Parameter nach den den Koordinaten, '2' der zweite usw. Es kann auch '0' angegeben werden, dann wird konstant die Farbe 0 (R0 G0 B0) verwendet.
Der Rest der Anweisung entspricht dem der map cone Anweisung.


map sphere size Parameter {lin|log} DMIN DMAX VMIN VMAX

Diese Anweisung bestimmt die Größe der Kugeln. Die Bedeutung von Parameter und lin / log ist analog zu der in der map sphere color Anweisung. Der Wertebereich (VMIN,VMAX) wird auf den Durchmesserbereich (DMIN,DMAX) abgebildet. Falls als Parameter '0' angegeben wird, dann wird DMIN verwendet und braucht auch nur angegeben zu werden.


map sphere shape Parameter Shape0 Val1 Shape1 Val2 Shape2 ...

Mit Hilfe dieser Anweisung kann die Form der Kugeln werteabhängig festgelegt werden. Die Bedeutung von Parameter ist analog zu der in der map sphere color Anweisung. Falls der aktuelle Wert kleiner oder gleich Val1 ist, dann wird Shape0 verwendet, ist er größer als Val1 aber kleiner oder gleich Val2, dann wird Shape1 verwendet usw. Falls als Parameter '0' angegeben wird, dann wird Shape0 verwendet und braucht auch nur angegeben zu werden. Die Shapes werden als jeweils ein Buchstabe mit der folgenden Bedeutung angegeben: 'S' = Sphere, 'T' = Tetrahedron, 'C' = Cube, 'O' = Octahedron, 'D' = Dodecahedron, 'I' = Icosahedron, 'P' = teaPot.


°space X1 Y1 Z1  X2 Y2 Z2

gibt einen umschließenden Quader durch die Koordinaten zweier raumdiagonal gegenüber liegender Ecken an.  Alles was sich außerhalb dieses Quaders befindet, wird nicht dargestellt !
Default: space 0 0 0 1 1 1


°xyratio R

gibt das Seitenverhältnis x/y an.  Dieser Wert kann auch interaktiv mit der Mouse verändert werden - durch Verschiebung der Fensterränder.
Default: xyratio 1


°background R G B

definiert die Hintergrundfarbe.
Default: background 0 0 0 (schwarz)


°trans X Y Z

verschiebt das Bild gegenüber der ursprünglichen Darstellung um die angegebenen Koordinaten. Es gilt immer nur die letzte trans-Anweisung. trans 0 0 0  entspricht der ursprünglichen Darstellung.


°rot PSI THETA PHI

dreht das Bild gegenüber der ursprünglichen Darstellung um die angegebenen Winkel (in Grad). PSI = Präzession, THETA = Nutation, PHI = Rotation. Es gilt immer nur die letzte rot-Anweisung. rot 0 0 0 entspricht der ursprünglichen Darstellung.


°zoom F

vergrößert das Bild gegenüber der ursprünglichen Darstellung um den angegebenen Faktor. Faktoren < 1 bewirken eine Verkleinerung. Es gilt immer nur die letzte zoom-Anweisung. zoom 1 entspricht der ursprünglichen Darstellung.


°origin X Y Z

setzt den Drehmittelpunkt auf die angegebenen Koordinaten.
Default: origin 0 0 0


°simplespace

Diese Anweisung vereinfacht dasSetzen von "sinnvollen" space- und origin-Parametern: Als umschließender Quader wird ein Würfel definiert, in dem alle Vertices enthalten sind. Der Drehmittelpunkt wird in den Mittelpunkt dieses Würfels gesetzt.
Die ausgeführten space- und origin-Anweisungen werden auch an die Konsole ausgegeben.


°text XR YR R G B TEXT

schreibt den angegebenen Text in das Bild. Die Textfarbe wird mit R G B angegeben. XR und YR sind die 2 -dimensionale Relariv-Koordinaten im Bild für den Textanfang. Dabei sind (0.0, 0.0) links oben und (1.0, 1.0) rechts unten. Font und Schriftgröße sind systemabhängig.


°hotspot VERTEX

Mit Hotspot wird ein Vertex bezeichnet, der in einer anderen Farbe (durch hotspotcolor festgelegt) dargestellt wird. Die hotspot-Anweisung setzt den Hotspot auf Vertex Nummer VERTEX. Der Wert -1 bedeutet: kein Hotspot.


°hotspotcolor R G B

setzt die Hoptspot-Farbe.
Default: hoptspotcolor 255 255 255 (weiss)


°mode MODE

schaltet den Anzeigemodus. Die möglichen Werte für MODE und deren Bedeutung kann man der folgenden Tabelle entnehmen:
 
MODE 2D 3D wire frame show origin
0   x    
  x   x
2     x  
3     x x
4 x      
5 x     x


°set Name Value

Mit dieser Anweisung können Einstellungen im Anzeigeprogramm gesetzt werden. Diese haben keinen Einfluss auf das Bild. (noch nicht implementiert)


°°exit

beendet v3dshow.


°°home

entspricht
trans 0 0 0
rot 0 0 0
zoom 1
und setzt außerdem zustandsabhängige Variablen in v3dshow zurück.


°°printstate {0|1}

gibt den aktuellen Zustand aus. Der Parameter gibt an, wohin ausgegeben wird: 0 -> Ausgabe nach stdout (Konsole), 1-> Ausgabe an das statefile (siehe v3dshow).




Benutzung von v3d   v3dshow