Hello à toutes et à tous,
J'écris pour une question toute bête sur le calcul d'angles entre deux droites. Plus précisément je recherche l'angle (plein) counter-clockwise formé par deux droites lors du parcours d'un chemin de droites d'un point A à un point B.
Un petit schéma sera mieux qu'un long discours (fait main en plus!):
Je me suis penché sur le topic sacrément bien détaillé chez Mathworks à cette adresse: http://www.mathworks.com/matlabcentr..._thread/151925.
En appliquant leur principe, je calcule les angles, et j'obtiens des résultats parfois étonnant (affichés en degrés, en regard du 2ème angle, qui est inférieur à 270° et du 5ème angle, qui me semble un peu sous estimé):
Je me suis sans aucun doute trompé en appliquant tout ça, mais j'ai creusé dans tout les sens, et j'aboutis toujours au même résultat. Je vous détaille mon code:
Merci par avance à ceux qui pourront me donner un coup de main!
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 for i=1:size(data,1)-2 xy1 = data(i,:); %1er point xy2 = data(i+1,:); %2me point xy3 = data(i+2,:); %3me point %recupere la direction des vecteurs: x1 = xy1(1) - xy2(1); y1 = xy1(2) - xy2(2); x2 = xy3(1) - xy2(1); y2 = xy3(2) - xy2(2); angleR = mod(atan2(x1*y2-x2*y1,x1*x2+y1*y2),2*pi); %Sauve en radians / degrees angles(i,:) = [angleR, angleR * 180/pi]; end
Partager