Bonjour,
je voudrais qu'on m'aide à calculer le volume de tétraèdres irréguliers.
actuellement j'utilise la formule
V=(A*H)/3.
V->volume
A->Aire
H->hauteur
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.
voici la fonction que j'utilise actuellement pour le calcul:
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;
 
}
Merci