Je venais moi-même de poster un commentaire lorsque m'est apparu l'étalement des dates (14 ans ! ) ... D'où un retrait immédiat du message, conscient du ridicule achevé de la situation, et de ce que la généralisation d'une telle pratique dénaturerait complètement les échanges sur les forums.
Rien à voir évidemment avec l'intérêt de la question, parfois exprimée en d'autres occasions. et à laquelle d'autres intervenants ont apporté de bonnes réponses. Ce sont quelques développements particuliers qui me sont venus en tête.
# Dans le plan (xOy) d'un repère orthonormé direct (Oxyz) contenant le triangle (ABC) et un point quelconque (M), la recherche de la réponse passe évidemment par le calcul de trois déterminants (ou produits mixtes, ce qui revient au même):
QA = Det(MB, MC) = uz│(MB×MC) ,
QB = Det(MC, MA) = uz│(MC×MA) ,
QC = Det(MA, MB) = uz│(MA×MB) .
(M) appartenant à (ABC) si et seulement si les trois termes précédents possèdent le même signe, et vérifient par conséquent la condition:
Code : | Sélectionner tout |
Test:= ((Qa*Qb>0) AND (Qb*Qc>0))
# Toutefois lorsqu'un grand nombre de vérifications s'avère nécessaire, un autre test permet de se dispenser souvent du calcul précédent par le rejet préalable des points (M) situés à l'extérieur du rectangle circonscrit au triangle (ABC), et d'arêtes parallèles aux axes (x'x, y'y).
Il suffit de déterminer les valeurs extrêmes des coordonnées des 3 sommets:
Xmin = Min(XA, XB, XC) , Xmax = Max(XA, XB, XC) , etc ...
puis d'effectuer le test:
Code : | Sélectionner tout |
Test1:= ((Xmin<x) AND (x<Xmax)) AND ((Ymin<y) AND (y<Ymax))
Code : | Sélectionner tout |
Test2:= ((Qa*Qb>0) AND (Qb*Qc>0))