Mauvais calcul volumique(tetraedre)

Résolu/Fermé
ibrakola Messages postés 18 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 7 juin 2017 - 25 mai 2012 à 02:09
ibrakola Messages postés 18 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 7 juin 2017 - 1 juin 2012 à 08:58
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 mercredi 23 mai 2012 Statut Membre Dernière intervention 7 juin 2017
1 juin 2012 à 08:58
Bonjour , je suis arriver a le résoudre hier nuit a travers cette methode v1.(v2^v3).
0