Si tu as trois points A(xa,ya) B(xb,yb) C(xc,yc)
tu veux savoir si le point M(xm,ym) Se trouve dans le triangle ABC:
tu remarque que si le poit M se trouve dans le triangle
la DEMI droite verticale partant de M coupe le triangle en
UN point sinon elle le coupe en 2 points ou aucun.
donc tu cherche le nombre de points d'intercection.
tu limite ta recherche a: inf(xa,xb,xc)<xm<sup(xa,xb,xc)
et a : sup(ya,yb,yc)<ym<inf(ya,yb,yc)
inf:INFERIEUR
sup:SUPERIEUR
Hum,ta solution est élégante mais pas trés facile a mettre en oeuvre.
tu as je pense une condition comme celle ci:
arctg(A)+arctg(B)+arctg(C)=2*pi
avec A =((ym-yb)/(xm-xb)-(ym-ya)/(xm-xa))/1+(ym-yb)*(ym-ya)/(xm-xb)*(xm-xa))
et B,C du meme tonneau...
Pour les calés, on peut aussi procédé à un changement de base (on envoie les vecteurs de base sur deux des côtés du triangle) et on regarde si les coordonnées du point dans la nouvelle base sont plus grandes que 0 et plus petites que 1. Le tout prend 2-3 lignes et est d'une élégance rare !