bonjour, je recherche a calculer l'angle entre 3 points,

bon j'ai commencer a faire ca, mais ca a pas l'air trop juste.[c'est en c++)


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
 
 
// soit P1(x1,y1), P2(x2,y2), P3(x3,y3)
// l'angle se situe au niveau de de P3 
 
         //a cause des divisions plus loins il y a ces conditions. 
        if(x2-x3 == 0)return;
	if(y2-y3 == 0)return;
 
        // on calcule le coeficient angulaire
	double CA = (y2-y3)/(x2-x3);
        // p est le reste de l'eqiuation perpendiculaire a la droite(passant par P2 et P3)et et passant par P1 
	double p = y1 -(1/CA)*x1;
 
 
        // P4 point qui se situe sur la droite passant par p3 et p2 et qui forme alors un angle droit
	x4 = (p+CA*x2)/(CA-1/CA);
	y4 = (1/CA)*x4+p;
 
        // on calcule l'opose et l'ypothenuse
	double opose = sqrt((x1-x4)*(x1-x4)+(y1-y4)*(y1-y4));
	double hypot = sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
 
        // on trouve l'angle
	double angle = asin(opose/hypot);
 
	cout << angle << endl;

qqn serait il me dire ou j'ai faux, et si il y a une merilleur methode (sachant, qu'en generale se sont de petite distance qui separe P1 et P2 (compris entre 0° et 5°)

merci

a++


alors,