Пересечение лучей на плоскости онлайн

все онлайн инструменты / Пересечение лучей на плоскости онлайн

Точки определяющие лучи

A
A
B
B
C
C
D
D
Шаг шкалы =

Точка пересечения лучей

x = -
y = -

Нахождение точки пересечения на основе параметрического уравнения

✓ P(t) = A + t*u - параметрическое уравнение прямой, где
P(t) - точка на луче, координаты которой зависят от t,
A - начальная точка луча A(x, y),
t - параметр влияющий на расстояние текущей точки от начальной,
u - вектор направления луча u = (Bx - Ax, By - Ay).
Данное уравнение изначально представляет прямую, но ограничивая параметр t уравнение может описывать луч и отрезок:
при -∞ < t < +∞ - уравнение описывают прямую,
при 0 ≤ t < +∞ - уравнение описывают луч,
при 0 ≤ t ≤ 1 - уравнение описывают отрезок.

Решение

  1. Создадим систему уравнений для двух лучей: { P1 = A + t * u P2 = C + s * v
  2. Чтобы найти точку пересечения, необходимо решить систему уравнений относительно параметров t и s, при которых точки P1 и P2 совпадают. Это приводит нас к системе линейных уравнений, которую можно решить методом Крамера. Решение системы даст значения t и s. Если оба параметра не отрицательны, то лучи пересекаются. A + t * u = C + s * v Разложим это векторное равенство на компоненты: (Ax + t*ux, Ay + t*uy) = (Cx + s*vx, Cy + s*vy) Отсюда получаем новую систему уравнений: { Ax + t*ux = Cx + s*vx Ay + t*uy = Cy + s*vy Перепишем полученную систему в стандартную форму: { t*ux - s*vx = Cx - Ax t*uy - s*vy = Cy - Ay
  3. Для решения системы применим метод Крамера, пусть это элементы матрицы: a11 = ux, a12 = -vx, b1 = (Cx - Ax) a21 = uy, a22 = -vy, b2 = (Cy - Ay) Главный определитель ∆ матрицы: |ux -vx|
    |uy -vy|
    ∆ = ux*-vy - uy*-vx = ???
    Если ∆ равен 0, то значит лучи параллельны, совпадают или расположены на одной прямой.

    Определитель ∆1: |(Cx - Ax) -vx|
    |(Cy - Ay) -vy|
    1 = (Cx - Ax)*-vy - (Cy - Ay)*-vy =
    Определитель ∆2: |ux (Cx - Ax)|
    |uy (Cy - Ay)|
    2 = ux*(Cy - Ay) - uy*(Cx - Ax) =
  4. Теперь вычислим параметры t и s. Пересечение двух лучей происходит тогда и только тогда, когда для обоих параметров выполняются условия t ≥ 0 и s ≥ 0. Иначе лучи не имеют общей точки.
    t = ∆1 / ∆ = s = ∆2 / ∆ = Вывод:
  5. Предварительные расчеты все произведены, теперь можно вычислить точку пересечения лучей, если таковая имеется. Для нахождения точки пересечения можно использовать любое уравнение из системы для двух лучей, возьмём уравнение для первого луча. P1 = A + t*u Вывод: