Lib_Vector

Une petite librairie pour le calcul vectoriel 2D et 3D  http://dev.virtual-loup-de-mer.org/vlmtools/browser/lib_vector

Structures disponibles

Deux structures disponible pour optimiser les calculs.

  • Type vector2D
    typedef struct {
        double x;
        double y;
        } vector2D;
    
  • Type vector3D
    typedef struct {
        double x;
        double y;
        double z;
        } vector3D;
    

Fonctions disponibles

  • vector2D Vector_Init2D(double x, double y); / vector3D Vector_Init3D(double x, double y, double z);
    Création d'un vecteur à partir de ses composantes
  • double Vector_Dot2D(vector2D u, vector2D v); / double Vector_Dot3D(vector3D u, vector3D v);
    Calcul du produit scalaire (u . v)
  • vector3D Vector_Cross2D(vector2D u, vector2D v); / vector3D Vector_Cross3D(vector3D u, vector3D v);
    Calcul du produit vectoriel (u x v)
    Attention: retourne un vecteur 3D
  • double Vector_Norm2D(vector2D u); / double Vector_Norm3D(vector3D u);
    Calcul de la norme du vecteur u
  • double Vector_Ang2D(vector2D u, vector2D v); / double Vector_Ang3D(vector3D u, vector3D v);
    Calcul de l'angle entre deux vecteurs
  • vector2D Vector_Unit2D(vector2D u); / vector3D Vector_Unit3D(vector3D u);
    Normalise le vecteur u (norme =1)
  • vector2D Vector_Add2D(vector2D u, vector2D v); / vector3D Vector_Add3D(vector3D u, vector3D v);
    Addition de deux vecteurs (u + v)
  • vector2D Vector_Sub2D(vector2D u, vector2D v); / vector3D Vector_Sub3D(vector3D u, vector3D v);
    Soustraction de deux vecteurs (u - v)
  • vector2D Vector_Sca2D(vector2D u, double s); / vector3D Vector_Sca3D(vector3D u, double s);
    Multipliction d'un vecteur par un scalaire (u x s)
  • vector2D Vector_Slerp2D(vector2D u, vector2D v, double t); / vector3D Vector_Slerp3D(vector3D u, vector3D v, double t);
    Interpolation sphérique linéaire
    Calcul du vecteur interpolé entre les vecteurs u et v en fonction de t(0-1)
     http://www.plunk.org/~hatch/rightway.php
  • double Vector_NormInterpol(double a, double b, double t);
    Calcul de l'interpolation entre deux valeurs a et b en fonction de t(0-1)
  • void Vector_Print2D(char *s, vector2D u); / void Vector_Print3D(char *s, vector3D u);
    Ecriture du vecteur u
  • vector2D Vector_Nul2D(void); / vector3D Vector_Nul3D(void);
    Création d'un vecteur nul
  • vector2D Vector_Opp2D(vector2D u); / vector3D Vector_Opp3D(vector3D u);
    Création d'un vecteur opposé au vecteur u