Steering Behaviors
Steering Behaviors
Steering Behaviors
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