Як знайти точку перетину відрізків.

Найпростіші геометричні примітиви, такі як точки, прямі, площини, фігурують в більшості наукових і інженерних задач, пов'язаних з проектуванням, графічними побудовами, візуалізацією і машинної графікою. Подібні завдання, як правило, вирішуються шляхом застосування принципу декомпозиції і зведення їх до послідовностей елементарних дій з геометричними примітивами. Так, складні тривимірні об'єкти в машинної графіці аппроксимируются полігонами, а ті в свою чергу - трикутниками, трикутники задаються відрізками ребер, які визначаються їх кінцевими точками. Саме тому розуміння того, як вирішити найпростіші геометричні задачі, наприклад того, як знайти точки перетину відрізків, вельми важливо для будь-якого технічного фахівця.
Вам знадобиться
  • Лист паперу, ручка.
Інструкція
1
Підготуйте вихідні дані. В якості вихідних даних зручно прийняти відрізки, задані координатами точок їх кінців у декартовій системі координат. У даній системі координатні осі ортогональні і мають однаковий лінійний масштаб. Припустимо, маються відрізки O1 і O2. Відрізок O1 заданий точками з координатами P11 (x11, y11) і P12 (x12, y12), а відрізок O2 заданий точками з координатами P21 (x21, y21) і P22 (x22, y22).
2
Складіть рівняння прямих, до яких належать відрізки O1 і O2. Рівняння прямої відрізка O1 матиме вигляд: K1 * x + d1-y = 0. Рівняння прямої відрізка O2 матиме вигляд: K2 * x + d2-y = 0. Тут K1 = (y12-y11)/(x12-x11), d1 = (x12 * y11-x11 * y12)/(x12-x11), K2 = (y22-y21)/(x22-x21), d2 = ( x22 * y21-x21 * y22)/(x22-x21).
3
Вирішіть систему рівнянь, що складається з рівнянь прямих, складених на попередньому кроці. Вирахувавши з першого рівняння друге, можна отримати: K1 * x-K2 * x + d1-d2 = 0. Звідки x = (d2-d1)/(K1-K2). Підставивши x в перше рівняння, отримаємо: y = K1 * (d2-d1)/(K1-K2) + d1. Значення K1, K2, d1, d2 відомі. Точка P (x, y) є перетином прямих, на яких лежать вихідні відрізки.
4
Перевірте, чи є точка з знайденими координатами точкою перетину саме відрізків, а не прямих, на яких вони лежать. Для цього переконайтеся, що координата точки x належить одночасно діапазонами значень [x11, x12] і [x21, x22], а координата y належить одночасно діапазонами [y11, y12] і [y21, y22].