Discussion:
sens de rotation suivant 3 points
(trop ancien pour répondre)
laurent couraud
2011-06-03 12:25:42 UTC
Permalink
Bonjour,

je recherche une méthode simple (algorithmiquement parlant) me permettant de
répondre à la question suivante:

Soit 3 points du plan non colinéaire, p1=(x1, y1), p2=(x2, y2), p3=(x3, y3).
Comment déterminer en parcourant les points de p1 à p2 puis de p2 a p3 si on
tourne dans le sens trigonométrique ou non?

Merci d'avance pour toute idées.
Patrice Rabiller
2011-06-03 15:52:12 UTC
Permalink
Post by laurent couraud
Bonjour,
je recherche une méthode simple (algorithmiquement parlant) me permettant
Soit 3 points du plan non colinéaire, p1=(x1, y1), p2=(x2, y2), p3=(x3, y3).
Comment déterminer en parcourant les points de p1 à p2 puis de p2 a p3 si
on tourne dans le sens trigonométrique ou non?
Merci d'avance pour toute idées.
Bonjour,

Je suggère d'utiliser le centre de gravité qui est toujours à l'intérieur du
triangle p1p2p3 ...
Serganz
2011-06-03 16:11:27 UTC
Permalink
Post by laurent couraud
Soit 3 points du plan non colinéaire
Le terme correct est : non alignés.
Post by laurent couraud
, p1=(x1, y1), p2=(x2, y2), p3=(x3, y3).
Comment déterminer en parcourant les points de p1 à p2 puis de p2 a p3 si on
tourne dans le sens trigonométrique ou non?
Je suggère de considérer le vecteur directeur P1P2 de la droite (P1P2).
Il a pour coordonnées (y2-y1,x2-x1)

À partir de là, on considère le vecteur n de coordonnées (x1-x2,y2-y1).
Ce vecteur est normal au vecteur P1P2, orienté il me semble (c’est à vérifier) du côté où se trouvent les points P3 tels que la « rotation » se fait dans le sens trigonométrique.

Ainsi, si le produit scalaire du vecteur P1P3 (y3-y1,x3-x1) par le vecteur n est positif, la rotation est dans le sens trigonométrique, et réciproquement.

Ce produit scalaire a pour expression : (x1-x2)(y3-y1)+(y2-y1)(x3-x1) = x1(y3-y2)+x2(y1-y3)+x3(y2-y1)
laurent couraud
2011-06-03 21:18:20 UTC
Permalink
Post by Serganz
Post by laurent couraud
Soit 3 points du plan non colinéaire
Le terme correct est : non alignés.
Post by laurent couraud
, p1=(x1, y1), p2=(x2, y2), p3=(x3, y3).
Comment déterminer en parcourant les points de p1 à p2 puis de p2 a p3 si on
tourne dans le sens trigonométrique ou non?
Je suggère de considérer le vecteur directeur P1P2 de la droite (P1P2).
Il a pour coordonnées (y2-y1,x2-x1)
À partir de là, on considère le vecteur n de coordonnées (x1-x2,y2-y1).
Ce vecteur est normal au vecteur P1P2, orienté il me semble (c’est à
vérifier) du côté où se trouvent les points P3 tels que la « rotation » se
fait dans le sens trigonométrique.
Ainsi, si le produit scalaire du vecteur P1P3 (y3-y1,x3-x1) par le vecteur
n est positif, la rotation est dans le sens trigonométrique, et
réciproquement.
Ce produit scalaire a pour expression : (x1-x2)(y3-y1)+(y2-y1)(x3-x1) =
x1(y3-y2)+x2(y1-y3)+x3(y2-y1)
Merci à tous.
visualkit
2011-06-14 08:12:16 UTC
Permalink
Post by laurent couraud
Bonjour,
je recherche une méthode simple (algorithmiquement parlant) me permettant de
Soit 3 points du plan non colinéaire, p1=(x1, y1), p2=(x2, y2), p3=(x3, y3).
Comment déterminer en parcourant les points de p1 à p2 puis de p2 a p3 si on
tourne dans le sens trigonométrique ou non?
Merci d'avance pour toute idées.
Je tenterais, utilisant le produit vectoriel noté ^, l'algorithme suivant :

p1^p2=x1y2-y1x2
p2^p3=x2y3-y2x3


Si p1^p2>=0 && p2^p3>=0 => sens trigo
Si p1^p2<0 && p2^p3<0 => sens inverse trigo


Philippe
Donner goût aux travaux manuels, aux maths, à la techno et à la 3D avec
du papier : http://www.visualkit.com

Continuer la lecture sur narkive:
Loading...