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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
int l,m, Nbrpoints;
double alphaT;
point p(0,0,0);
cout<<"donner le nombre de points"<<endl;
cin>>Nbrpoints;
int *dim=&Nbrpoints;
point *a= new point[*dim];
vecteur *r= new vecteur [*dim];
double *sgn= new double [*dim];
double *alpha= new double [*dim];
vecteur **s;
s = new vecteur*[*dim];
for(l=1;l<=*dim;l++)
{
*s= new vecteur[l];
}
vecteur **N;
N = new vecteur*[*dim];
for(l=1;l<=*dim;l++)
{
*N= new vecteur[l];
}
for (l=1;l<=Nbrpoints;l++)
{
a[l].saisirpoint();
}
for (l=1;l<=Nbrpoints;l++)
{
r[l].setx(p.getx()-a[l].getx());
r[l].sety(p.gety()-a[l].gety());
r[l].setz(p.getz()-a[l].getz());
cout<<"r[l].getx() = "<<r[l].getx()<<endl;
cout<<"r[l].gety() = "<<r[l].gety()<<endl;
cout<<"r[l].getz() = "<<r[l].getz()<<endl;
}
for (l=1;l<=Nbrpoints;l++)
{
// s[l][1].setx(r[l].getx()-r[1].getx());
for (m=1;m<=Nbrpoints;m++)
{
double azery =r[l].getx()-r[m].getx();
//s[l][m].saisir(r[l].getx()-r[m].getx(),r[l].gety()-r[m].gety(),r[l].getz()-r[m].getz());
s[l][m].setx(r[l].getx()-r[m].getx());
s[l][m].sety(r[l].gety()-r[m].gety());
s[l][m].setz(r[l].getz()-r[m].getz());
N[l][m]=N[l][m].normale(p,a[l],a[m]);
}
}
for(l=2;l<*dim;l++)
{
sgn[1]= acos(N[3][1].prodscal(N[1][2]));
sgn[l]=acos(N[l-1][l].prodscal(N[l][l+1]));
sgn[l+1]= acos(N[l+1][1].prodscal(N[l+1][1]));
if (sgn[l]>0) sgn[l]*= -1;
}
for(l=1;l<=*dim;l++)
{
alpha[l]=3.151516+sgn[l];
alphaT += alpha[l];
}
alphaT= alphaT - (Nbrpoints-2)*3.141516;
double phi= alphaT/(4*3.141516);
cout<<"alpha ="<<alpha<<endl;
cout<<"phi ="<<phi<<endl; |
Partager