Saya membuat simulator kemudi kecil menggunakan algoritma Reynolds boid. Sekarang saya ingin menambahkan fitur penghindaran dinding. Dinding saya dalam 3D dan didefinisikan menggunakan dua titik seperti itu:
---------. P2
| |
P1 .---------
Agen saya memiliki kecepatan, posisi, dll ...
Bisakah Anda memberi tahu saya cara menghindar dengan agen saya?
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;
}
Kemudian saya menggunakan semua kekuatan yang dikembalikan oleh fungsi boid saya dan saya menerapkannya pada agen saya.
Saya hanya perlu tahu bagaimana melakukannya dengan dinding saya.
Terima kasih atas bantuan Anda.