DELPHI ПЕРЕСЕЧЕНИЕ ОТРЕЗКОВ
Delphi пересечение отрезков
Пересечение отрезков — важная задача в графическом программировании. Эта задача связана с определением пересечения двух отрезков на плоскости. Решение этой задачи может быть полезно при рисовании линий и фигур, в определении столкновений объектов и других задач.
Пересечение двух отрезков можно определить по их конечным точкам. Если два отрезка пересекаются, то их конечные точки должны быть расположены с разных сторон друг друга.
Один из способов реализации проверки на пересечение — применение векторного произведения. Если результат векторного произведения векторов AB и AC отличен от нуля и результат векторного произведения CD и CA также отличен от нуля, то отрезки пересекаются в точке пересечения.
function intersects(A, B, C, D: TPoint): boolean;
var
AB, CD: TPoint;
begin
AB := Point(B.x - A.x, B.y - A.y);
CD := Point(D.x - C.x, D.y - C.y);
result := (CrossProduct(AB, CD) <> 0) and
(CrossProduct(CD, Point(C.x - A.x, C.y - A.y)) / CrossProduct(AB, CD) <= 1) and
(CrossProduct(CD, Point(C.x - A.x, C.y - A.y)) / CrossProduct(AB, CD) >= 0);
end;
В примере выше функция intersects работает с четырьмя точками типа TPoint: A, B, C и D. Она возвращает True, если отрезки AB и CD пересекаются, иначе False.
Алгоритмы. Пересечение отрезков.
16. Показать что прямые пересекаются и найти точку их пересечения в пространстве
Урок №1: Условия в Delphi - оператор \
Как найти абсциссу точки пересечения двух прямых?
eDelphi Process, part 3: Executing the Delphi Rounds
Определяем сумму длин выделенных отрезков в Autocad