/* Mathematiques de l'informatique graphique */ /* Position en 3D */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Mars 2019 */ #include #include #include #include "CH3D.h" #include "Pos3D.h" /* Constructeurs */ Pos3D::Pos3D(void):CH3D(0.0,0.0,0.0,1.0) { } Pos3D::Pos3D(double x,double y,double z):CH3D(x,y,z,1.0) { } Pos3D::Pos3D(Pos3D *p):CH3D(p) { } /* Destructeur */ Pos3D::~Pos3D(void) { } /* Fonction de calcul du carre de la distance */ /* entre les deux positions p1 et p2 */ static double carreDistance(Pos3D *p1,Pos3D *p2) { double dx = p2->c[0]-p1->c[0]; double dy = p2->c[1]-p1->c[1]; double dz = p2->c[2]-p1->c[2]; return(dx*dx+dy*dy+dz*dz); } /* Methode de calcul de la distance */ /* entre les deux positions this et p */ double Pos3D::distance(Pos3D *p) { return(sqrt(carreDistance(this,p))); } /* Methode statique de calcul de la distance */ /* entre les deux positions p1 et p2 */ double Pos3D::distance(Pos3D *p1,Pos3D *p2) { return(sqrt(carreDistance(p1,p2))); }