Voir le flux RSS

wiwaxia

[Actualité] Serpent de mer en vue !

Noter ce billet
par , 01/05/2017 à 14h43 (271 Affichages)
Il y a parfois des sujets qui surgissent d'une manière sporadique sur les forums, comme cela vient encore de se produire il y a quelques jours: la question de savoir si un point se trouve dans un triangle, initialement exprimée en juin 2003 (cinq messages), a suscité une correction de code en juillet 2009, puis deux questions en mai 2011 (malheureusement restées sans réponse) et tout dernièrement la mention d'un lien sur la Toile.

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 - Visualiser dans une fenêtre à part
Test:= ((Qa*Qb>0) AND (Qb*Qc>0))
Les triangles (MAB), (MBC) et (MCA) présentent alors la même orientation intrinsèque, identique à celle de (ABC); ils sont tous directs quand les déterminants sont positifs, rétrogrades dans le cas contraire.

# 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 - Visualiser dans une fenêtre à part
Test1:= ((Xmin<x) AND (x<Xmax)) AND ((Ymin<y) AND (y<Ymax))
La condition d'intériorité au triangle (ABC) intervient ensuite - et seulement dans ce cas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Test2:= ((Qa*Qb>0) AND (Qb*Qc>0))
(le second test est vrai dans les zones bleutées du graphe).

Nom : Triangle ABC_Min Max XY_02.png
Affichages : 45
Taille : 16,9 Ko

Envoyer le billet « Serpent de mer en vue ! » dans le blog Viadeo Envoyer le billet « Serpent de mer en vue ! » dans le blog Twitter Envoyer le billet « Serpent de mer en vue ! » dans le blog Google Envoyer le billet « Serpent de mer en vue ! » dans le blog Facebook Envoyer le billet « Serpent de mer en vue ! » dans le blog Digg Envoyer le billet « Serpent de mer en vue ! » dans le blog Delicious Envoyer le billet « Serpent de mer en vue ! » dans le blog MySpace Envoyer le billet « Serpent de mer en vue ! » dans le blog Yahoo

Mis à jour 02/05/2017 à 07h02 par wiwaxia

Catégories
Programmation

Commentaires

  1. Avatar de wiwaxia
    • |
    • permalink
    Une suite est donnée dans le billet suivant: Partition du triangle.
    Merci de me signaler les erreurs éventuelles.
    Mis à jour 09/05/2017 à 13h48 par wiwaxia