Je fais un petit simulateur de direction en utilisant l'algorithme Boid de Reynolds. Maintenant, je veux ajouter une fonction d'évitement de mur. Mes murs sont en 3D et définis à l'aide de deux points comme ça:
---------. P2
| |
P1 .---------
Mes agents ont une vitesse, une position, etc ...
Pourriez-vous me dire comment éviter avec mes agents?
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;
}
Ensuite, j'utilise toutes les forces renvoyées par mes fonctions boid et je l'applique à mon agent.
J'ai juste besoin de savoir comment faire ça avec mes murs.
Merci de votre aide.