1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
INTERSECTION-SEGMENTS(p1,p2,p3,p4)
d1 = DIRECTION(p3,p4,p1)
d2 = DIRECTION(p3,p4,p2)
d3 = DIRECTION(p1,p2,p3)
d4 = DIRECTION(p1,p2,p4)
si ((d1>0 et d2 < 0) ou (d1 < 0 et d2 > 0)) et
((d3 > 0 et d4 < 0) ou (d3 < 0 et d4 > 0)
alors retourner VRAI
sinon si d1 = 0 et SUR-SEGMENT(p3,p4,p1)
alors retourner VRAI
sinon si d2 = 0 et SUR-SEGMENT(p3,p4,p2)
alors retourner VRAI
sinon si d3 = 0 et SUR-SEGMENT(p1,p2,p3)
alors retourner VRAI
sinon si d4 = 0 et SUR-SEGMENT(p3,p4,p4)
alors retourner VRAI
sinon retourner FAUX
DIRECTION(pi,pj,pk)
retourner (pk - pi) x (pj - pi)
où x est le "produit vectoriel" de p1xp2 (le determinant dans ce cas de [p1 p2] = x1*y2 - x2*y1)
SUR-SEGMENT(pi,pj,pk)
si min(xi,xj) <= xk <= max(xi,xj) et min(yi,yj) <= yk <= max(yi,yj)
alors retourner VRAI
sinon retourner FAUX |
Partager