Mauvais calcul volumique(tetraedre)

Résolu
ibrakola Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
ibrakola Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
actuellement je travail, sur une generation de tetraedres 3D sous VS2010 c++.
Les tetraedres sont générés de tailles petits, moyens ou grands de façon aleatoire et biensur qui ne sont pas en contact les uns avec les autres.

En ne générant qu'un seul, j'obtiend un bon volume mais plus ils sont nombreux et plus le volume total est petit.
parexemple en générant 100 tetraèdres j'obtiens un volume inferieur à 1%.
j'utilise la formule v=H*B*1/3
avec H->la hauteur et B->la surface de base.
-volume(codes)
double Tetraedre3D::Volume(Vertex _point) const
{
    double aire_base;
    double hauteur,hauteur1;
    double norme;

   Vecteur v1;
   Vecteur v2;
   Vecteur v3;
   v1.setCoordx(this->getpVertex(1).getCoordx() - this->getpVertex(0).getCoordx());
   v1.setCoordy(this->getpVertex(1).getCoordy() - this->getpVertex(0).getCoordy());
   v1.setCoordz(this->getpVertex(1).getCoordz() - this->getpVertex(0).getCoordz());
   v2.setCoordx(this->getpVertex(2).getCoordx() - this->getpVertex(0).getCoordx());
   v2.setCoordy(this->getpVertex(2).getCoordy() - this->getpVertex(0).getCoordy());
   v2.setCoordz(this->getpVertex(2).getCoordz() - this->getpVertex(0).getCoordz());

   v3 = v2 ^ v1;
   norme = (double) sqrt(v3.getCoordx()*v3.getCoordx() + 
							v3.getCoordy()*v3.getCoordy() + 
							v3.getCoordz()*v3.getCoordz());

   aire_base = norme / 2;

	v1 = this->normale;
   v2.setCoordx(_point.getCoordx() - this->getpVertex(0).getCoordx());
   v2.setCoordy(_point.getCoordy() - this->getpVertex(0).getCoordy());
   v2.setCoordz(_point.getCoordz() - this->getpVertex(0).getCoordz());

   hauteur1 = v2 % v1;
   hauteur = fabs(hauteur1);

   return  (aire_base * hauteur)/3;

}




Je voudrais solliciter votre aide(des idées ou une correction du code) afin d'obtenir un bon calcul volumique.

Merci
A voir également:

1 réponse

ibrakola Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour , je suis arriver a le résoudre hier nuit a travers cette methode v1.(v2^v3).
0