ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/acismesh/m2d_cal_qual.cpp
Revision: 1
Committed: Mon Jun 11 22:53:07 2007 UTC (17 years, 11 months ago)
File size: 2057 byte(s)
Log Message:

File Contents

# Content
1 /*****************************************************************
2
3 m2d_cal_qual.c Type:Func
4
5 Calcul de la qualite d un triangle
6
7 Date de creation : Wed Mar 6 16:25:11 1996
8
9 Derniere version : Tue Apr 22 12:03:24 1997
10
11
12
13
14
15
16
17 Vincent FRANCOIS
18
19 *****************************************************************/
20
21
22
23
24
25 /**************************/
26 /* include */
27 #include <stdio.h>
28 #include <math.h>
29 #include "const.h"
30 #include "memoire.h"
31 #include "struct.h"
32 #include "prototype.h"
33
34 /**************************/
35 /* variables globales */
36 extern struct environnement env;
37 extern struct s_mesh *mesh;
38
39
40 /**************************/
41 /* programme principal */
42
43 float m2d_cal_qual(int n1,int n2,int n3)
44 {
45 struct s_noeud *no1,*no2,*no3;
46 float vec12[3],vec13[3],vec23[3];
47 float d12,d13,d23,dmax,crit,p;
48
49 no1=ADRESSE(n1,noeud,mesh->);
50 no2=ADRESSE(n2,noeud,mesh->);
51 no3=ADRESSE(n3,noeud,mesh->);
52 VEC(vec12,no1,no2);
53 VEC(vec13,no1,no3);
54 VEC(vec23,no2,no3);
55 d12=PSCA(vec12,vec12);
56 d13=PSCA(vec13,vec13);
57 d23=PSCA(vec23,vec23);
58 d12=(float)sqrt((double)d12);
59 d13=(float)sqrt((double)d13);
60 d23=(float)sqrt((double)d23);
61 MAXI(dmax,d12,d13);
62 MAXI(dmax,dmax,d23);
63 p=0.5*(d12+d13+d23);
64 crit=(p-d12)*(p-d13)*(p-d23)/p;
65 crit=(float)sqrt((double)crit);
66 crit=crit/dmax;
67 crit=crit*3.4641101614;
68 return(crit);
69 }