Код:
1 2 3 4 5 6 7 8 9 10 | function CollisionLine(LA1,LB1,LA2,LB2:Points): boolean ;
var v1,v2,v3,v4: double ;
begin
v1:=(lb2 . X-la2 . X)*(la1 . y-la2 . y)-(lb2 . y-la2 . y)*(la1 . X-la2 . X);
v2:=(lb2 . X-la2 . X)*(lb1 . y-la2 . y)-(lb2 . y-la2 . y)*(lb1 . X-la2 . X);
v3:=(lb1 . X-la1 . X)*(la2 . y-la1 . y)-(lb1 . y-la1 . y)*(la2 . X-la1 . X);
v4:=(lb1 . X-la1 . X)*(lb2 . y-la1 . y)-(lb1 . y-la1 . y)*(lb2 . X-la1 . X);
CollisionLine:=(v1*v2< 0 ) and (v3*v4< 0 );
end ;
|
где:
LA1,LB1 одна линия, соответственно LA2,LB2-вторая