Показать сообщение отдельно
  #4  
Старый 20.03.2012, 18:08
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Код:
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-вторая
Ответить с цитированием