1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| // Calcul de Phi sur le segment [M0,M1] composé des points M0(M0.x,M0.y) et M1(M1.x,M1.y)
double Phi(Point M0, Point M1) {
// segment ortho
Dn.x = -(M1.y-M0.y)
Dn.y = (M1.x-M0.x)
// normalisation
double norme = racine( Dn.x^2 + Dn.y^2 )
Dn.x /= norme;
Dn.y /= norme;
double result=0;
double step=1.0/norme;
for(double t=0;t<1;t+=step) {
x = M0.x + t*(M1.x-M0.x);
y = M0.y + t*(M1.y-M0.x);
G = gradient(x,y);
result += step*( G.x*D.x + G.y*D.y )
}
return result;
} |
Partager