Найпростіші геометричні примітиви, такі як точки, прямі, площини, фігурують у більшості наукових та інженерних завдань, пов'язаних з проектуванням, графічними побудовами, візуалізацією та машинною графікою. Подібні завдання, як правило, вирішуються шляхом застосування принципу декомпозиції та зведення їх до послідовностей елементарних дій з геометричними примітивами. Так, складні тривимірні об'єкти в машинній графіці апроксимуються полігонами, а ті в свою чергу - трикутниками, трикутники задаються відрізками ребер, які визначаються їх кінцевими точками. Саме тому розуміння того, як вирішити найпростіші геометричні завдання, наприклад того, як знайти точки перетину відрізків, досить важливо для будь-якого технічного фахівця. Вам потрібна програма Підготуйте
вихідні дані. В якості вихідних даних зручно прийняти відрізки, задані координатами точок їх кінців в декартовій системі координат. У цій системі координатні осі ортогональні і мають однаковий лінійний масштаб. Припустимо, є відрізки O1 і O2. Відрізок O1 визначено точками з координатами P11 (x11, y11) і P12 (x12, y12), а відрізок O2 вказано точками з координатами P21 (x21, y21) і P22 (x22, y22).
Залиште рівняння прямих, до яких належать відрізки 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
). Віднявши з першого рівняння друге, можна отримати: 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) є перетином прямих, на яких лежать вихідні відрізки.
Перевірте, чи є точка зі знайденими координатами точкою перетину саме відрізків, а не прямих, на яких вони лежать. Для цього переконайтеся, що координата точки x належить одночасно діапазонам значень [x11, x12] і [x21, x22], а координата y належить одночасно діапазонам [y11, y12] і [y21, y22].
COM_SPPAGEBUILDER_NO_ITEMS_FOUND