программа пересечение двух отрезков <вх:ax,ay,bx,by,cx,cy,dx,dy:R>:Q
дано : | концы первого отрезка (ax, ay) и (bx, by)
| концы второго отрезка (cx, cy) и (dx, dy)
получить: | ответ = отрезки пересекаются да/нет
____________
| A(ax, bx) B(bx, by) C(cx, cy) D(dx, dy)
v1x := bx - ax | вектор AB
v1y := by - ay
v2x := cx - ax | вектор AC
v2y := cy - ay
v3x := dx - ax | вектор AD
v3y := dy - ay
v4x := dx - cx | вектор CD
v4y := dy - cy
v5x := bx - cx | вектор CB
v5y := by - cy
v6x := ax - cx | вектор CA
v6y := ay - cy
coord1 := v1x * v2y - v1y * v2x | [AB, AC]
coord2 := v1x * v3y - v1y * v3x | [AB, AD]
coord3 := v4x * v5y - v4y * v5x | [CD, CB]
coord4 := v4x * v6y - v4y * v6x | [CD, CA]
ответ := (coord1 * coord2 <= 0 и coord3 * coord4 <= 0)
конец программы