/* Mathematiques de l'informatique graphique */ /* Direction en 2D */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Octobre 2012 */ #include #include #include #include "CoordonneesHomogenes2D.h" #include "Direction2D.h" #include "Position2D.h" /* Constructeurs */ Direction2D::Direction2D(void):CoordonneesHomogenes2D(0.0,0.0,0.0) { } Direction2D::Direction2D(double x,double y):CoordonneesHomogenes2D(x,y,0.0) { } Direction2D::Direction2D(Direction2D *p):CoordonneesHomogenes2D(p) { } Direction2D::Direction2D(Position2D *p1,Position2D *p2):CoordonneesHomogenes2D() { c[0] = p2->c[0]-p1->c[0]; c[1] = p2->c[1]-p1->c[1]; c[2] = 0.0; } /* Destructeur */ Direction2D::~Direction2D(void) { } /* Methode de calcul de la norme */ double Direction2D::norme(void) { return(sqrt(c[0]*c[0]+c[1]*c[1])); } /* Methode de normalisation */ double Direction2D::normalisation(void) { double d = norme(); if ( d != 0.0 ) { c[0] /= d; c[1] /= d; } return(d); } /* Methode de calcul du produit scalaire */ /* de deux directions */ double Direction2D::produitScalaire(Direction2D *d) { return(c[0]*d->c[0]+c[1]*d->c[1]); }