05.10.2013 Aufrufe

Steering Behaviors

Steering Behaviors

Steering Behaviors

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Steering</strong> <strong>Behaviors</strong><br />

Autoren: Thomas Feilkas, Christian Schnellhammer<br />

Betreuer: Prof. Jürgen Sauer Regensburg<br />

Implementierung<br />

Das Separation-Verhalten funktioniert, ähnlich wie bei elektrisch geladenen<br />

Teilchen, durch gegenseitiges Abstoßen voneinander. Zunächst müssen alle<br />

Fahrzeuge, die sich innerhalb eines bestimmten Abstands vom betreffendem<br />

Fahrzeug befinden, ermittelt werden. Dazu wird das Simulations-Object<br />

Neighborhood verwendet. Die Neighborhood-Methode<br />

getNearVehicles(v, m_nearAreaRadius)<br />

liefert einen Iterator über eine Fahrzeugliste, deren Fahrzeuge sich maximal<br />

m_nearAreaRadius vom Fahrzeug entfernt befinden. Für jedes<br />

benachbarte Objekt wird ein abstossender Vektor a r ermittelt. Dieser wird<br />

durch Differenz der Position des Fahrzeugs v und dem benachbartem<br />

Fahrzeug v2 berechnet:<br />

⎟ ⎛ xv1<br />

− xv2<br />

⎞<br />

a = ⎜<br />

⎝ yv1<br />

− yv<br />

2 ⎠<br />

r<br />

1<br />

Dieser Vektor wird durch normalisieren und skalieren auf die Länge<br />

r<br />

gebracht, wobei r die Entfernung zwischen den beiden Fahrzeugen beschreibt.<br />

near Area<br />

Abbildung 9: Berechnung des Steuerungsvektors bei Separation<br />

v 1<br />

v 2<br />

1<br />

15

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!