Bonjour,
Je fais appel à vous car je cherche le moyen de déterminer si un point (x,y) est à l'intérieur d'un triangle.
En espérant que vous puissiez m'aider dans ma recherche, je vous souhaite une bonne soirée.
Bonsoir,
le sujet est vraiment très vague !
Quel en est vraiment le niveau ?
Que sait-t-on sur le triangle ? Les coordonnées des 3 points de ce triangle sont elles données ?
Les coordonnées du point dont on veut savoir si il est ou non à l'intérieur du triangle ? ou autre définition ?
Bonsoir.
C'est effectivement dans un contexte bien vague ... Deux pistes à priori
1°) On connaît les coordonnées des trois sommets, on cherche les équations des trois côtés et on résout trois inéquations
2°) On dit que ce fameux point est barycentre à coefficients positifs des trois sommets. Je penche pour la seconde piste.
Cordialement RR.
Escusez moi pour le manque de clarté et je vous remercie d'avoir répondu si vite à ce topic.
Pour bien faire je vais vous situer le contexte.
Je suis programmeur et je l'intégration d'une fonction me permettant de savoir si un point est à l'intérieur d'un triangle me sera très utile.
Par ailleurs, les mathématiques n'est pas la matière que je maîtrise le mieux.
En ce qui concerne le triangle, considérez qu'il est quelconque et que vous disposez des trois points le définissant.
En ce qui concerne le point, il n'a aucun lien avec le triangle (ce n'est donc pas le barycentre.
Rebonsoir.
En ce qui concerne le barycentre, il y a toujours une relation : tout point intérieur à un triangle peut être considéré comme barycentre des trois sommets, avec des coefficients positifs.
Il existe trois réels positifs a, b, c tels que :
Pour la méthode des droites.
Tu te places dans un repère bien adapté au problème :
Equation de (AB) : y = 0
Equation de (AC) : x = 0
Equation de (BC) : x + y = 1
M(x,y) intérieur à (ABC) <==> x > 0 et y > 0 et x + y < 1.
Cordialement RR.
Tiré d'un code perso :
$C0=($x-$tri[1]['x'])*($y-$tri[2]['y'])-($x-$tri[2]['x'])*($y-$tri[1]['y']);
$C1=($x-$tri[2]['x'])*($y-$tri[0]['y'])-($x-$tri[0]['x'])*($y-$tri[2]['y']);
$C2=($x-$tri[0]['x'])*($y-$tri[1]['y'])-($x-$tri[1]['x'])*($y-$tri[0]['y']);
$tri[i]['x'],
$tri[i]['y']
represente les 3 coordoné du i-emme sommet
$C0,$C1,$C2 sont les trois coordoné barycentrique du point ($x,$y)
apres le teste est simple : si ils sont tous les trois de meme signe, ($x,$y) est dans le triangle, sinon il ni est pas ^^
apres sa depend de ce que tu veux faire :
moi j'avait BESSOIN des coordoné barycentrique precisement, donc j'ai utilisé cette methode.
-si tu a un triangle donné au debut et plein de point a tester il est peut-etre preferable de determiner "une bonne fois pour toute" les equation de droite des segement, et tu aura trois inegalité a tester
- dans touts autre situation, cette methode est probablement la plus simple...
Bonsoir,
pour poursuivre l'exploration des pistes, dans le contexte de la programmation :
1 - Angle direct formé par le point avec deux sommets consécutifs : les trois angles sont inférieurs à pi ou bien supérieurs à pi;
1 - Distance algébrique (positive ou négative) du point aux segments formant le triangle : même signe si les sommets du triangle sont pris dans l'ordre;
Dans cette méthode il suffit d'étudier le signe de :
y0 (x2 - x1) - x0 (y2 - y1) avec M0 point à rechercher et M1 et M2 points du triangle.
...
Bonsoir,
je pense que globalement toute ces methodes revienne au trois compraison que j'ai ecrite plus haut il me semble... (avec de la trigo en plus pour la derniere...)
Si tu le dis ! mais je ne vois pas de trigo pour la dernière qui concerne le calcul d'une distance au carré.
...
Merci pour votre aide. Je ne m'attendais vraiment pas à tant de dysnamisme.
... euh oui, un peu de trigo pour la premier pardon ^^
je veux dire, quand tu regarde, mes 3 equation de coordoné barycentrique sont aussi les equations des segments, et si on mesure l'angle il depend de la distance au segments, qui se calcule aussi avec l'equation de droite...
donc au final apres conditionement c'est a mon avi toujour la meme grandeur qu'on va se retrouver au comparer, (ou son arcsinus si on regarde les angles)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :