Règle en 3 !!! Elle est bonne celle là !!! Excuse moi. C'est la règle de proportionnalité ou produit en croix .....Désolé !!!
j'utilise deux tableaux contenant les anciens angles des servomoteurs et les nouveaux à atteindre et ces fonctions :
//Calculs les variations des angles Var_Angle(); //Recherche la variation des angles Rech_Var_Max(); //Calculs la vitesse des servomoteurs Calcul_Speed(); //TRANSFERT DES NOUVEAUX ANGLES DANS old angles Transfert_Angle();
Voici les fonctions :
////calcul des variations d’angle pour chaque servomoteur. void Var_Angle() { for (int i = 1 ;i<=18 ;i++) { VarAngle[i] = abs(OldAngle[i] - NewAngle[i]); } }//FIN :: Void Var_Angle() //////////////////////////////////////////////////////////////////////////////// ////Calcul de la vitesse de chaque servomoteur void Calcul_Speed() { for( int i = 1; i <= 18; i++ ) { if (VarMax==0) { Speed[i] = 0; } else if (VarMax>0) { Speed[i] = ( VarAngle[i] * SpeedMax ) / VarMax; // C'est ça la règle dès 3!!! heu non la règle en croix !!! } } }//FIN :: Void Calcul_Speed() ///////////////////////////////////////////////////////////////////////////////////// ////Recherche de la variation maximale, avec la fonction Rech_Var_Max void Rech_Var_Max() { VarMax = 0 ; for(int i=1; i<=18; i++) { if(VarAngle[i] > VarMax) { VarMax = VarAngle[i]; } } }//FIN :: Void Rech_Var_Max() /////////////////////////////////////////////////////////////////////////////////// ////Transfère les nouveaux angles dans le tableau des anciens angles void Transfert_Angle() { for( int i = 0; i <= 18; i++ ) // for( int i = 1; i <= 18; i++ ) { OldAngle[i] = NewAngle[i]; } }//FIN :: Void Transfert_Angle()
.......toute remarque et bonne à prendre ......