Peter Lorenz English smaller fonts Simulation und Animation

2.1.3. Animationszeit und Animationskommandos


Im Run-Modus beginnt eine Animationszeit oder -uhr zu laufen. Sie läuft mit konstantem, aber einstellbarem Tempo. Das Animationstracefile (ATF) enthält Animationskommandos, die im Run-Modus abgearbeitet werden. Sie betreffen die Animationszeit, die Objekte, deren Positionen, Zustandsänderungen und Bewegungen. Sie betreffen weiterhin die Nachrichten, Balken und Diagramme, die sich während des Animationslaufes ändern.
Der vorliegende Abschnitt behandelt Animationskommandos zur Erzeugung, Platzierung, Bewegung, Rotation und Vernichtung von Objekten.

Run-Modus von Proof AnimationTop Line

Der Run-Modus dient dem Start und der Steuerung eines Animationslaufes. Man kann einen Animationslauf als sequentielle Abarbeitung eines ATF verstehen. Der Lauf ist beendet, wenn das abschließende End-Kommando verarbeitet wurde. Dem folgenden Bildausschnitt kann man entnehmen, wie eine laufende Animation interaktiv gesteuert werden kann.

Run-Menu

Menü- und Werkzeugleiste im Run-Modus

:

Start animation Start
startet die Animation vom Beginn oder vom Zeitpunkt der letzten Stop-Unterbrechung.
Stop Stop
erscheint während eines Laufes in roter Farbe und wird benutzt, um einen Animationslauf zu stoppen.
Jump ahead/back in time Jump
erlaubt die Einstellung eines Zeitpunktes, an dem die Animation gestartet werden soll.
Adjust viewing speed Adjust Viewing Speed
spezifiziert das Verhältnis von Vorführ- und Realzeit. Voreingestellt ist der Wert 6. In einer Sekunde werden 6 Einheiten der Animationszeit vorgeführt.
.

Animationszeit und RealzeitTop Line

.

Simulationszeit oder simulierte Zeit beginnt ihren Lauf beim Zeitpunkt Null, dem Startpunkt eines Simulationslaufes. Von dort aus schreitet sie von einem Ereigniszeitpunkt zum nächsten fort."," The simulation system GPSS/H, which will be introduced and explained in the following chapters, uses positive real values to represent the time. The simulation time or simulated time starts to run at zero which is the beginning of the simulation runtime. From there it steps forward from one event to the next") ?>

Animationszeit in Proof Animation beginnt bei Null und hat wachsende, reelle Werte. Im Unterschied zur Simulationszeit verändert sie sich während eines Animationslaufes, also im Run-Modus, in kleinen äquidistanten Schritten. Für jeden Schritt wird ein neues Bild errechnet und gezeigt. Dabei ist das Animationssystem darum bemüht, eine möglichst strenge Proportionalität zwischen Realzeit und Animationszeit einzuhalten und muss dazu bei Bildern mit sehr vielen bewegten Objekten die Bildwiederholfrequenz der Rechenleistung anpassen.", "The animation time in Proof Animation starts at zero. Other than the simulated time, the animation time changes during the animation runtime, that is in the run mode, in small steps. For each step a new picture is calculated and displayed. The animation system tries to keep a realistic proportion between realtime and animation time. In the case of very many moving objects the refresh rate has to be adapted to the computing performance.") ?>

Einheit der Animationszeit kann frei interpretiert werden. Es ist dem Nutzer überlassen, ob er eine Sekunde, eine Minute, eine Stunde oder einen Monat als Zeiteinheit benutzt und die Animationszeit entsprechend interpretiert. Generell ist davor zu warnen, für die Simulation eine andere Interpretation der Zeiteinheit zu wählen, als für die Animation. Wenn die Zeiteinheit des Simulationsmodells als Minute interpretiert wird, sollte dieselbe Interpretation auch für die Zeiteinheit der Animation gelten.", "The unit of the animation time is left to individual interpretation. It is for the user to decide whether to interpret a unit of the animation time as a second, a minute, an hour or a whole month. Generally it is to be avoided to use different interpretations for simulation and animation. If one step of time in the simulation model is interpreted as a minute, the same interpretation should be used for the animation.") ?>

Select the animation time unit and format

View selektiert und Toolbar Date/Time Format wählt, erhält man das nebenstehende Bild. Hier kann man nun die gewählte Zeiteinheit eintragen und eine Startzeit spezifizieren.", "After the decision about the animation time unit the format of the display of thisw time can be specified. The current animation time is displayed on the right of the toolbar. The display format can be specified in the Draw mode. After selecting View and Date/Time Format the window shown on the left hand appears. Here the animation time unit and a starting time can be selected.") ?>

Der taktweise, quasistetige Lauf der Animationszeit hat gewisse Punkte, in denen das Laufzeitsystem von Proof Animation™ neue Instruktionen erhält. Diese Zeitpunkte werden durch die Time-und DT-Kommandos des ATF bestimmt.
Beim Start eines Animationslaufes beginnt die Uhr ihren Lauf beim Wert 0, und es werden erste Animationskommandos oder ATF-Kommandos verarbeitet, die am Beginn des ATF stehen. Die Kommandos können Objekte erzeugen, positionieren und in Bewegung versetzen. Das Laufzeitsystem steuert gestartete Bewegungen bis zu ihrem Ende.

Time
ist ein Kommando, das zum angegeben Zeitpunkt alle diejenigen Aktionen auslöst, welche diesem Kommando folgen, bis diese Folge vom nächsten Time- oder DT-Kommando unterbrochen wird. Seine Syntaxdarstellung lautet:
Time value
value Animationszeitpunkt, der abzuwarten ist, um die folgenden Kommandos auszuführen

DT
ist ein Kommando, das eine Zeitdifferenz oder die Länge eines Zeitintervalls angibt, das bis zur Auslösung seiner Folgekommandos abzuwarten ist. Seine Syntaxdarstellung lautet:
DT value
value Länge des Zeitintervalls bis zum Start der folgenden Anweisungen

Time und DT sind von grundlegender Bedeutung für das Verstehen von ATF und sollen deshalb an folgendem Beispiel erklärt werden:

Die hier benutzten ATF-Kommandos werden in den folgenden Abschnitten erklärt.

Erzeugung, Positionierung und Vernichtung von ObjektenTop Line

Im folgenden werden die weiter oben schon benutzten ATF-Kommandos zur Erzeugung, Positionierung und Vernichtung von Objekten beschrieben.

Create
ist ein Kommando zur Erzeugung eines Objektes einer im Layout definierten und damit verfügbaren Klasse. Seine Syntaxdarstellung lautet
Create classID objectID
classID Name der Klasse, von der ein Objekt erzeugt werden soll.
objectID Name oder Zahl als Identifikator des zu erzeugenden Objekts
Destroy
ist ein Kommando zur Vernichtung eines existierenden Objektes. Seine Syntaxdarstellung lautet
Destroy objectID
Place at
ist ein Kommando zur Platzierung eines Objektes an einen angegebenen Platz auf dem Bildschirm. Seine Syntaxdarstellung lautet
Place objectID at x y
x, y Koordinaten im globalen Koordinatensystem von Proof. Sie bestimmen den Ort für das Zentrum des lokalen Koordinatensystems des Objektes. Sie bestimmen den Ort für das Zentrum des lokalen Koordinatensystems des Objektes.
Es ist darauf zu achten, dass Circle, CIRCLE und circle sind also drei verschiedene Namen.
Nach seiner Erzeugung durch Create bleibt ein Objekt unsichtbar, bis es durch Place at einem Platz zugewiesen wurde. Nach Ausführung von Destroy verschwindet es wieder.

Bewegung von ObjektenTop Line

Mit den bisher eingeführten Kommandos kann man bereits die Bewegung von Objekten auf dem Bildschirm bewirken. Eine Folge von Time- und Place-at-Kommandos reicht aus, um ein Objekt in kleinen Schritten über den Bildschirm zu bewegen und damit den Eindruck kontinuierlicher Bewegung zu erwecken. Auf diese mühsame Art der Bewegungsbeschreibung ist der Benutzer von Proof Animation™ nicht angewiesen. Er kann Objekte

nächsten Abschnitt behandelt. Im folgenden geht es um die Bewegung zwischen zwei Punkten", "Objects on paths will be explained in the next chapter. The following explains the motion from one point to another") ?>.

Move
ist ein Animationskommando, das (ohne Angabe einer Beschleunigung) die geradlinige, gleichförmige Bewegung eines Objektes von seinem Ausgangspunkt zu einem Zielpunkt veranlaßt. Dafür gibt es zwei verschiedene Syntaxvarianten:
Move objectID duration xtarget ytarget [relative]
Move objectID speed s xtarget ytarget [relative]

Operand
duration bestimmt die Zeitdauer der Bewegung
s bestimmt die Geschwindigkeit (Weg pro Zeit)
relative bewirkt, dass die xtarget- und ytarget-Werte nicht absolut, sondern relativ zum Ausgangspunkt genommen werden
:
Move objectID speed s acceleration a xdest ydest [relative]
Move objectID speed s1 endspeed s2 xdest ydest [relative]
Das folgende ATF benutzt dreimal das Move-Kommando. Wie man sieht, dürfen sich die Bewegungen zweier Objekte (T1 und Cnew) zeitlich überlappen.
Time 20                laesst die ersten 20 Zeiteinheiten ablaufen
Create Triangle T1     erzeugt das Dreieck T1
Place T1 20 5          setzt es auf den Punkt (20, 5)
Move T1 30 80 5        bewegt es 30 Zeiteinheiten lang zum Punkt (80, 5)
Time 30                Debug-Zwischenstop T1(x)=20+(80-20)x(10/30)=40
Time 40                T1(x)=60
Time 50                T1(x)=80
Time 70               
Move T1 20 10 15       T1 wird schraeg nach links oben bewegt
Create Circle Cnew     Cnew wird erzeugt,
Place Cnew 10 10       platziert
Move Cnew 20 80 10     und nach rechts bewegt.
Time 80
Time 90
Time 100
Destroy Cnew           Cnew wird vernichtet
End
Die Abarbeitung dieses ATF-Files setzt ein Layoutfile voraus, in dem die Klassen Triangle und Circle definiert sind. Folgendes Layoutfile eignet sich dafür:
Download Layout ATF
Define View "(Home)" center 40 30 Width 99.2969 Grid Size 1 10 Ortho Aspect 1 0.5 Speed 6
Define View "(Class)" center 0 0 Width 9.9297 Grid Size 0.1 1 Ortho
Define color Backdrop  0.8 0.749 0.549
Define color F1 0 0 0.6667
Define color F2 1 0 0
................
Color F1
Define Class Circle
Arc 4 0 0 0 360 6.2832
Fill -0.5512 -1.3024
End
Color F2
Define Class Triangle
Line 0 4 -4 -4
Line -4 -4 4 -4
Line 4 -4 0 4
Fill 0.6512 -1.8364
End
Color F7
Define Class Square
Line -1.6 1.6 -1.6 -1.6
Line -1.6 -1.6 1.6 -1.6
Line 1.6 -1.6 1.6 1.6
Line 1.6 1.6 -1.6 1.6
Fill 0.0696 -0.6932
End
Color F3
Line 0 26 86 26
Line 10 1 10 0
Line 30 1 30 0
Line 40 1 40 0
Line 50 1 50 0
Line 60 1 60 0
Text 1 1 LJ 0 -2 0
Line 86 0 0 0
Line 20 1 20 0
Text 1 1.2 LJ 9 -2 10
Line 86 26 86 0
Line 70 1 70 0
Line 80 1 80 0
Line 0 0 0 26
Line 0 10 1 10
Line 0 20 1 20
Color F2
Text 1 1.8 LJ 2 22 Layout23
Color F3
Text 1 1.2 LJ 79 -2 80
Text 1 1.2 LJ 49 -2 50
End

Es ist zu empfehlen, in den Debug-Modus von Proof zu gehen und die Abarbeitung des ATF im Einzelschrittmodus zu verfolgen.

hier klickt, sieht man die Animation aus dem aktuellen Beispiel.", "Proof animations can also be saved and presented as videos. Click here to view the animation of the current example.") ?>

Färben von ObjektenTop Line

Während eines Animationslaufes kann man die Farbe von Objekten verändern, z. B. um Zustandsänderungen anzuzeigen. Dazu benutzt man das Kommando Set Color.

Set Color
ist ein Kommando zum Umfärben von Objekten während eines Animationslaufes. Seine Syntaxdarstellung lautet
Set objectID Color color/Class.
Operand
objectID
color gibt die Farbe an, für deren Codierung F1 bis F32 (Vordergrundfarben) und L1 bis L32 Hintergrundfarben) sowie Backdrop für die Farbe des Bildschirmhintergrundes zu benutzen sind. Die RGB-Komponenten dieser Farben kann man verändern, wenn man Setup->Colors selektiert.
Class bewirkt die Wiederherstellung der für die Objektklasse vordefinierten Farbe.

Um Farbwirkungen beim Aufeinandertreffen von Bildkomponenten zu verstehen, kann man sich ein Dreischichtenmodell vorstellen.

  1. Backdrop. Sie wird durch die beiden darüberliegenden Schichten verdeckt.", "In the lowest layer is the background color Backdrop. It is covered by the next two layers.") ?>
  2. L1 bis L32.", "In the second layer are the picture background colors L1 up to L32)") ?>
  3. F1 bis F32. Sie verdecken die Farben beider darunterliegender Schichten.", "In the upper layer are the foreground colors F1 to F32. They cover the two layers below.") ?>

Rotation von Objekten Top Line

Objekte können auf einem festen Platz oder auch während ihrer Bewegung gedreht werden. Die Drehung oder Rotation wird durch das ATF-Kommando Rotate eingeleitet. Ähnlich wie beim Move-Kommando übernimmt das Laufzeitsystem von Proof Animation™ die Ausführung der Rotation. Sie kann zeitlich begrenzt oder unbegrenzt sein. Zeitlich unbegrenzte Rotationen enden erst mit dem Ende des Animationslaufes.

Rotate
ist ein Kommando, das die Drehung eines Objektes um das Zentrum seines lokalen Koordinatensystems startet. Die Rotationsgeschwindigkeit (Grad pro Zeiteinheit) bleibt dabei konstant. Die Syntaxdarstellung lautet:

Rotate objectID [to] angle [Time duration] [Step stepsize]
Rotate objectID [to] angle [Speed rotspeed stepsize]


Operand
to bewirkt die Rotation des Objektes von seiner aktuellen Position zu dem in angle angegebenen Winkel. Wenn man to wegläßt, wird das Objekt relativ zu seiner aktuellen Position um die angegebene Gradzahl gedreht.
angle ist der Winkel, um den das Objekt im Uhrzeigersinn zu drehen ist.
duration bestimmt die Zeitdauer der Rotation.
rotspeed bestimmt die Geschwindigkeit der Rotation in Grad pro Zeiteinheit. Wenn man Null angibt, wird eine laufende Rotation gestoppt.
stepsize bestimmt die Qualität der Rotationsdarstellung und ist mit 30 Grad voreingestellt. Wenn das zu grob ist, kann man es mit einer Angabe in diesem Operanden ändern. Es ist zu beachten, dass für jede benutzte Richtung ein Bitmap des Objekts angelegt werden muß. Zu feine Unterteilungen können ein Überlaufen des Bitmap-Speichers verursachen.
Beispiele für Rotate-Kommandos
Rotate 1 to 50           dreht Objekt 1 ohne Zeitverbrauch auf 50 Grad gegenüber der Normalstellung.
Rotate 1 -120 Time 10    dreht Objekt 1 um 120 Grad im Uhrzeigersinn und braucht dazu 10 Zeiteinheiten.
Rotate 1 -120 Speed 12   ist mit dem vorigen Kommando äquivalent.
Rotate 1 Speed 6         dreht das Objekt um 6 Grad pro Zeiteinheit, ohne dass ein Ende festliegt.
Rotate 1 Speed -1 Step 6 dreht das Objekt im Uhrzeigersinn wie einen Sekundenzeiger.

Das folgende Bildbeispiel zeigt die schematische Darstellung eines Fahrzeuges, das sich im Original horizontal über den Bildschirm bewegt. Dabei drehen sich die Räder mit einer Rotationsgeschwindigkeit, die man der Fahrgeschwindigkeit anzupassen hat.

Bild: Fahrendes Auto mit rotierenden Rädern
Download AVI LAY ATF

Trace-File-Generierung mit GPSS/H

Das folgende GPSS/H-Programmbeispiel generiert ein ATF-File mit Time-, Create-, Place-, Move- und Rotate-Anweisungen.


Auszüge für das dazu gehörige Layout-File sind im Folgenden wiedergegeben.

Color F1
Define Class Small
Fill -4.7461 3.9453
Arc 0.8 -5.5 3.5 0 360 0
Arc 1 -5.5 3.5 0 360 0
End
Color F11
Define Class Big
Fill -16.8359 8.6563
Arc 10 -12.5 8 0 360 0
End
Color F7
Define Class Medium
Fill 7.3938 5.2258
Arc 5 9.5 5.5 0 360 0
End

Download AVI LAY ATF

Animationstracefiles und andere Proof-Files

Bisher sind Layoutfile und Animationstracefile als die vielleicht wichtigsten Files vorgestellt worden, mit denen Proof Animation™ arbeitet. An dieser Stelle soll eine Übersicht über wichtige Files gegeben werden, die Proof lesen oder schreiben kann.

Name+Inhalt
Layout-FileLAY Bildhintergrund, Pfade, Objektklassen, Nachrichten, Balken und Diagramme
Animationstracefile ATF Animationskommandos, die den Ablauf einer Animation steuern
Präsentationsfile PSF Präsentationskommandos zur Gestaltung einer Präsentation
Log-FileLOG Fehlernachrichten aus dem Ablauf der Animation
LinkageFileLKG Daten über Anfangs- und Endpunkte sowie Längen von Pfaden

Die mit + markierte Spalte enthält die Namenserweiterungen für die jeweiligen Filenamen. Die Farben werden benutzt, um Files entsprechender Typen hervorzuheben und leichter erkennbar zu machen.

Kontrollfragen zum Abschnitt 2.3 Top Line

  1. !
  2. ?
  3. Time und DT", "Explain how the ATF commands Time and DT work") ?>!
  4. Time-Kommandos und seine Stellung im Animationstracefile", "Explain the effects of the Time command and its position in the ATF") ?>!
  5. Run-Modus", "Please remember some functions of the Run Mode's main menue") ?>!
  6. ?
  7. ?
  8. Move-Kommandos gibt es?", "Explain two versions of the Move command!") ?>
  9. ?
  10. ?
  11. ?

SAHome previous next up Englishsmaller fonts Top Line
Last Modified Fri 05-27-11 06:54 GMT Valid CSS!

Comments please to:pelosim@yahoo.com