Installer ce fichier dans votre répertoire de travail.

vsm.h
m0, eye, rot2D, Rot2D, Rot2D_P
/* ------------------------------------ */
/*  Save as :   vsm.h                   */
/* ------------------------------------ */

/* ------------------------------------ */
double **m0_mR(
double **Zer
)
{
int r;
int c;

  for   ( r=R1; r<Zer[R_SIZE][C0]; r++)
    for ( c=C1; c<Zer[C_SIZE][C0]; c++)

            Zer[r][c] = 0.;
return(Zer);
}
/* ------------------------------------ */
double **eye_mR(
double **ID
)
{
int r;
int c;

 isquare_mR(ID,"eye_mR();","(ID)");

  for   ( r=R1; r<ID[R_SIZE][C0]; r++)
    for ( c=C1; c<ID[C_SIZE][C0]; c++)

        if(r==c) ID[r][c] = 1.;
        else     ID[r][c] = 0.;

return(ID);
}
/* ------------------------------------ */
double **rot2D_mR(
double  **A,
double alpha
)
{
 A[1][1] = cos(alpha);A[1][2] = -sin(alpha);
 A[2][1] = sin(alpha);A[2][2] =  cos(alpha);
              
return(A);
}
/* ------------------------------------ */
double **Rot2D_mR(
double  **A,
double alpha
)
{
 m0_mR(A);      
 A[1][1] = cos(alpha);A[1][2] = -sin(alpha);
 A[2][1] = sin(alpha);A[2][2] =  cos(alpha);
 A[3][3] = 1.;
              
return(A);
}
/* ------------------------------------ */
void Rot2D_P_mR(
double  **A,
double  **P,
double alpha
)
{
 m0_mR(A);      
 A[1][1] = cos(alpha);
 A[1][2] = -sin(alpha);
 A[1][3] = P[1][1]*(1-cos(alpha))+P[2][1]*sin(alpha);
 
 A[2][1] = sin(alpha);
 A[2][2] =  cos(alpha);
 A[2][3] = P[2][1]*(1-cos(alpha))-P[1][1]*sin(alpha);
 
 A[3][3] = 1.;
}
/* ------------------------------------ */
/* ------------------------------------ */

Dans ce fichier h on introduit la construction de quelques matrices spécifiques, la matrice zéro, la matrice identité.

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.