Показать сообщение отдельно
  #4  
Старый 21.02.2010, 18:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вообще-то задача состоит из 2-х частей.
Часть первая - чистая математика.
Тебе надо вычислить коэф. уравнений y = ax + b для луча и отрезка. Далее берем и приравниваем уравнения, т.е. y1 = y2 => a1x+ b1 = a2x + b2. Решение этого уравнения есть точка пересечения. Ну и останется проверить, что эта точка находится в пределах отрезка и луча - это простые if'ы по координате x.

Рисовать можно с помощью следующего кода:
Код:
With Form1.Canvas Do
  Begin
    Pen.Color := clBlack;
    MoveTo(x1,y1);
    LineTo(x2,y2);
  End;

И не забывай, что экранный y направлен вниз, т.е. (0,0) находится в левом верхнем углу экрана.
Ответить с цитированием