Bonsoir, je travaille actuellement sur un projet c++/cli permettant de créer des mobiles autonomes, leurs attribuer une cible, vitesse et de les faire se déplacer en conséquence.

J'ai codé une première méthode de calcul sur le principe de la courbe du chien et je souhaiterai faire évoluer ce calcul de trajectoire en utilisant l'anticipation de trajectoire. On m'a parlé du filtre de kalman qui permet de faire ceci... seulement je n'en connais pas les subtiltées.

Voici le code de ma première méthode de calcul :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private: void Calcul()
	{
		double d_x = 0.0;
		double d_y = 0.0;
 
		while(pb_fin == true )
		{
			Thread::BeginCriticalRegion();//Début section critique !!!
			d_x = pCmob_cible->X - X;//Différence en X
			d_y = pCmob_cible->Y - Y;//Différence en Y
 
			d_x = d_x*(Vitess/10.0);//Déplacement en X
			d_y = d_y*(Vitess/10.0);//Déplacement en Y
 
			X = X + d_x;//On se déplace
			Y = Y + d_y;//On se déplace
 
 
			if((abs(pCmob_cible->X - X) < 5 )&& (abs(pCmob_cible->Y - Y) < 5) ) //Quand on est proche de la cible...Distance en valeur absolue
				this->Stop();
 
			if((X < COORD_MIN_X) || (X > COORD_MAX_X) || (Y < COORD_MIN_Y) || (Y > COORD_MAX_Y))//Si on sort du cadre
				this->Stop();
 
			Thread::EndCriticalRegion();//Fin section critique !!!
			Thread::Sleep(500);//Le mobile se déplace toutes les 500ms
		}
	}
Un exemple de tracer pour quatre mobiles ayant la même vitesse :


Merci de m'aider