yo c spi Yo ! | J'ai ceci comme algorithme de détection d'intersection d'un triangle et d'un rectangle : FP.intersects(xa1, ya1, xa2, ya2, xb1, yb1, xb2, yb2) rend vrai si les segments a1-a2 et b1-b2 font une intersection.
t.a référence le point a du triangle, t.a.x son abscisse ....
x, y, width et height sont respectivement l'abscisse du rectangle, son ordonnée, sa largeur et sa hauteur.
Code :
- FP.intersects(t.a.x, t.a.y, t.b.x, t.b.y, x, y, x+width, y) ||
- FP.intersects(t.a.x, t.a.y, t.b.x, t.b.y, x, y, x, y+height) ||
- FP.intersects(t.a.x, t.a.y, t.b.x, t.b.y, x+width, y, x+width, y+height) ||
- FP.intersects(t.a.x, t.a.y, t.b.x, t.b.y, x, y+height, x+width, y+height) ||
- FP.intersects(t.a.x, t.a.y, t.c.x, t.c.y, x, y, x+width, y) ||
- FP.intersects(t.a.x, t.a.y, t.c.x, t.c.y, x, y, x, y+height) ||
- FP.intersects(t.a.x, t.a.y, t.c.x, t.c.y, x+width, y, x+width, y+height) ||
- FP.intersects(t.a.x, t.a.y, t.c.x, t.c.y, x, y+height, x+width, y+height) ||
-
- FP.intersects(t.c.x, t.c.y, t.b.x, t.b.y, x, y, x+width, y) ||
- FP.intersects(t.c.x, t.c.y, t.b.x, t.b.y, x, y, x, y+height) ||
- FP.intersects(t.c.x, t.c.y, t.b.x, t.b.y, x+width, y, x+width, y+height) ||
- FP.intersects(t.c.x, t.c.y, t.b.x, t.b.y, x, y+height, x+width, y+height);
|
En gros : un triangle et un rectangle font une intersection si un des cotés du triangle fait une intersection avec un des cotés du rectangle.
Seulement voila, le code de cet algo qui me semble juste (j'ai surement tort) ne fonctionne pas, alors que le raisonnemnt ci dessus me semble très correct ---------------
J.C. Farinet
|