Я сделал небольшой симулятор рулевого управления, используя алгоритм Рейнольдса Бойда. Теперь я хочу добавить функцию предотвращения стен. Мои стены в 3D и определены с использованием двух таких точек:
---------. P2
| |
P1 .---------
У моих агентов есть скорость, позиция и т. Д.
Не могли бы вы рассказать мне, как избежать моих агентов?
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;
}
Затем я использую все силы, возвращаемые функциями boid, и применяю их к своему агенту.
Мне просто нужно знать, как это сделать со своими стенами.
Спасибо за вашу помощь.