Hello,
je suis encore là et surtout encore une fois je suis obligé de me tourner vers vous pour un problème que je n'arrive pas à résoudre.
Alors j'avance doucement sur l'algo (C++) qui calcule le mouvement des jambes d'HumaOne mais avant d'avoir un programme imbuvable je cherche à scinder mon programme en plusieurs fichiers.
Donc pour ce faire je souhaiterai, si c'est la bonne solution, placer les déclarations des variables et les fonction liés aux matrices dans un fichier header et son fichier lié .cpp
Première étape je crée un fichier :: matrices.h dans lequel je place ce code ::
#ifndef _MATRICES_H
#define _MATRICES_H
///////////////////////////////////////////////////////////////////////////////////
//fonction initialisation de la matrice de passage A
void IniMatriceMpi_A(double r, double d, double alpha, double teta, double angle);
#endif
Deuxième étape :: le fichier matrices.cpp ::
#include "matrices.h"
#include <Eigen>
using namespace Eigen;
///////////////////////////////////////////////////////////////////////////////////
//Déclaration des valeurs PI et PI/2
# define PI (3.14159265358979323846)
# define PI2 (1.57079632679489661923)
///////////////////////////////////////////////////////////////////////////////////
//déclaration des matrices ::
//MATRICE de PASSAGE
Matrix4d Mpi_A(4,4);
///////////////////////////////////////////////////////////////////////////////////
//fonction initialisation de la matrice de passage A
void IniMatriceMpi_A(double r, double d, double alpha, double teta, double angle)
{
teta = teta + angle; //Permet d'intégrer l'angle de la rotation
Mpi_A(0,0) = cos(teta);Mpi_A(0,1) = -cos(alpha)*sin(teta);Mpi_A(0,2) = sin(alpha)*sin(teta);Mpi_A(0,3) = r*cos(teta);
Mpi_A(1,0) = sin(teta);Mpi_A(1,1) = cos(alpha)*cos(teta);Mpi_A(1,2) = -sin(alpha)*cos(teta);Mpi_A(1,3) = r*sin(teta);
Mpi_A(2,0) = 0;Mpi_A(2,1) = sin(alpha);Mpi_A(2,2) = cos(alpha);Mpi_A(2,3) = d;
Mpi_A(3,0) = 0;Mpi_A(3,1) = 0;Mpi_A(3,2) = 0;Mpi_A(3,3) = 1;
}
Enfin, troisième étapes, je souhaite utiliser dans mon fichier main.cpp la fonction :: IniMatriceMpi_A.
//////////////////////////////////////////////////////////////////////////////////
//LES LIBRAIRIES
#include <iostream>
using namespace std;
#include "ModaCPP.h"
using namespace ModaCPP;
//#include <Eigen/Core>
#include <Eigen>
using namespace Eigen;
#include <math.h>
#include "matrices.h"
//Utilisation de la fonction :: niMatriceMpi_A, déclaré dans le fichier :: matrices.h et matrices.cpp
IniMatriceMpi_A(DH[f][0], DH[f][1], DH[f][2], DH[f][3],0);
std::cout << "Valeur de la Matrice Mp_A :: " << std::endl;
std::cout << Mpi_A << std::endl; //Affichage du contenu de ma matrice
std::cout << "*********************" << std::endl;
Et c'est donc au moment ou je souhaite afficher le contenu de ma matrice de passage que cela plante à la compil.
Cette ligne exactement
std::cout << Mpi_A << std::endl; //Affichage du contenu de ma matrice
Voici les messages de sortie à la compil ::
1>..\Sources\Main.cpp(107): error C2065: 'Mpi_A' : identificateur non déclaré
1>..\Sources\matrices.cpp(74): error C3861: 'Mpi_A' : identificateur introuvable
Voilà, voilà quoi.....J'ai beau regarder sur le net ???????? Je suis toujours bloqué !!!
Merci par avance pour toutes informations utiles.
++