| |
8
obale Richtung
Bei Computeranimationen möchte man die allgemeine Richtung des Schwarms vorgeben
können um einen kontrollierten Schwarmzug zur erhalten. Man erreichen dies, indem man
zusätzlich einen globalen Richtungsvektor einführt. Dieser Vektor wird mit anderen Vektoren
abgeglichen und kommt dann verändert in den Vektorspeicher. Dabei genügt es oft diese
zusätzliche Information nur führenden Boids mitzugeben, die dann vom Rest des Schwarms
verfolgt werden.
4.4
Umgehung von Hindernissen
Boids, die sich einem leeren Gebiet aufhalten, bilden
sehr
schnell
einen stabilen, sich rasch fort-
bewegenden Schwarm (mit geringen Abständen
zwischen den Boids). Führt man dem System
Hindernisse hinzu, treten komplizierte Bewegungen
auf.
Reynolds
erweiterte
die
Boids
um
die
Eigenschaft, bestimmte Hindernisse anhand ihrer
Silhouetten zu erkennen und zu umgehen.
(Abbildung 8) Der Boid schenkt dabei nur Objekten
in seinem vorderen Sichtfeld Beachtung. Wird also
ein Hindernis geortet, dieses kann sowohl statisch als
auch beweglich sein (Simulation von Fressfeinden),
so findet der Boid die Kante aus der Silhouette, die
seinem Kreuzungspunkt (Abbildung 7) am nächsten
liegt. Dann wird ein neuer Richtungsvektor, eine
Körperlänge neben der Kante, berechnet. Hat er das Objekt umgangen, nimmt er seine
ursprüngliche Richtung wieder auf.
4.5
Analyse des Algorithmus
Der Algorithmus nimmt mit zunehmender Bevölkerung stark an Komplexität zu. Dabei
handelt es sich bei diesem um einen O(n²)-Algorithmus. Diese aus der Komplexitätstheorie
bekannter O-Notation besagt, dass bei einem Algorithmus für Vektoren, dessen
Ausführungszeit f(n) von der Länge n des Vektors abhängt. Bei unserem Algorithmus wäre
f(n) n², wobei n die Anzahl der Boids ist.
Das bedeutet, dass die Größe des Schwarm stark von der Rechenleistung des Computers
abhängt. Verdoppelt man die Anzahl der Boids, vervierfacht sich der Rechenaufwand.
Abbildung 8
Ausschnitt aus Schwarmsimulation von Reynolds (1986). Boids überwinden zylinderförmige Hindernisse.
Abbildung 7
Boid wählt linken Weg (rot),
da die linke Kante (roter Schnittpunkt),
der Bewegungsrichtung am nächsten ist.
|  |
|
| |
|
|