//Функция, которая проверяет пересечение двух линий>>>>---------------------------

Код:
function Peresechenie(x11,y11,x12,y12,x21,y21,x22,y22 : Number) : Number {
var s,xx,yy,t1,t2,t : Number = null;
var D,D1,D2 : Number = null;
s=0;
D=(y12-y11)*(x21-x22)-(y21-y22)*(x12-x11);
D1=(y21-y11)*(x21-x22)-(y21-y22)*(x21-x11);
D2=(y12-y11)*(x21-x11)-(y21-y11)*(x12-x11);
if (D<>0){
t1=D1/D;
t2=D2/D;
if ((t1<=1) && (t1>=0) && (t2>=0) && (t2<=1)){
s=1;
xx=x11+(x12-x11)*t1;
yy=y11+(y12-y11)*t1;
}
}else {
if ((D1==0) && (D2==0)){
if (x11<>x12){
t1=(x21-x11)/(x12-x11);
t2=(x22-x11)/(x12-x11);
}else{
if (y11<>y12){
t1=(y21-y11)/(y12-y11);
t2=(y22-y11)/(y12-y11);
}
}
if (t1>t2){
t=t2;
xx=x21;
yy=y21;
t2=t1;
x21=x22;
y21=y22;
t1=t
x22=xx;
y22=yy;
}
if (t1<0){
if (t2>=1){
s=2;
}else{
if (t2>0){
s=2;
x12=x22;
y12=y22;
}else{
if (t2==0){
s=1;
xx=x11;
yy=y11;
}
}
}
}else{
if (t1<=1){
if (t1==1){
s=1;
xx=x12;
yy=y12;
}
else{
s=2;
x11=x21;
y11=y21;
if (t2>=1){
x12=x22;
y12=y22;
}
}
}
}
}
}
return s;
}
x11,y11,x12,y12,x21,y21,x22,y22 - координаты отрезков, если return s != 0, то значит пересекаются или один отрезок продолжает другой. Ну потесть и все понятнро будет, s может только трем значения равняться 0,1,2