Ich mache einen kleinen Lenksimulator mit dem Reynolds-Boid-Algorithmus. Jetzt möchte ich eine Wandvermeidungsfunktion hinzufügen. Meine Wände sind in 3D und werden mit zwei Punkten definiert:
---------. P2
| |
P1 .---------
Meine Agenten haben eine Geschwindigkeit, eine Position usw.
Können Sie mir sagen, wie ich mit meinen Agenten ausweichen kann?
Vector2D ReynoldsSteeringModel::repulsionFromWalls()
{
Vector2D force;
vector<Wall *> wallsList = walls();
Point2D pos = self()->position();
Vector2D velocity = self()->velocity();
for (unsigned i=0; i<wallsList.size(); i++)
{
//TODO
}
return force;
}
Dann benutze ich alle Kräfte, die von meinen Boid-Funktionen zurückgegeben werden, und wende sie auf meinen Agenten an.
Ich muss nur wissen, wie ich das mit meinen Wänden machen soll.
Danke für Ihre Hilfe.