Bonjour,
je voudrais qu'on m'aide à calculer le volume de tétraèdres irréguliers.
actuellement j'utilise la formule
Actuellement j'arrive à calculer le volume d'un tétraèdre irrégulier avec la formule en 3D, le problème est que plus j'ai des tétraèdres plus le calcul du volume est faux.V=(A*H)/3.
V->volume
A->Aire
H->hauteur
voici la fonction que j'utilise actuellement pour le calcul:
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 double Tetraedre::Volume(Vertex _point) { double aire_base; double hauteur; 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()); hauteur = v2 % v1; hauteur = fabs(hauteur); return 0.3333 * aire_base * hauteur; }
Partager