Sto realizzando un piccolo simulatore di sterzo usando l'algoritmo boid di Reynolds. Ora voglio aggiungere una funzione di evitamento del muro. Le mie pareti sono in 3D e definite usando due punti del genere:
---------. P2
| |
P1 .---------
I miei agenti hanno una velocità, una posizione, ecc ...
Potresti dirmi come evitare i miei agenti?
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;
}
Quindi uso tutte le forze restituite dalle mie funzioni boid e le applico al mio agente.
Devo solo sapere come farlo con i miei muri.
Grazie per l'aiuto.