§ Вывод соотношения

Сегодня я разберу, как вывести общее уравнение для линии, заданной в 2D-пространстве по двум точкам. У такой линии есть, как я и говорил, 2 точки - начало и конец, пусть это будет точка A и точка B , а также потребуется точка C , которая будет представлять собой неизвестные значения, которые должны лежать на прямой и удовлетворять уравнению.

На рисунке показан прямоугольный треугольник. Здесь легко заметить, что точка C лежит (и должна лежать) на линии AB . Эта точка образует подобный треугольник по двум углам - один общий, другой угол в 90° Итак, можно сделать такой вывод, что:
\frac{x - A_x}{B_x - A_x} = \frac{y - A_y}{B_y - A_y}
Поскольку треугольник подобен, то подобны все его стороны. Если теперь перемножить левую и правую часть на (B_x-A_x)(B_y-A_y) то получится следующее:
(x-A_x)(B_y-A_y) = (y-A_y)(B_x-A_x)
После раскрытия скобок и перегруппировки выходит следующий результат:
x(B_y-A_y) + y(A_x-B_x) + (A_yB_x - A_xB_y) = 0
Нетрудно заметить, что получается каноническое уравнение прямой.
Ax + Bx + C = 0
Где коэффициенты равны:
A = B_y-A_y
B = A_x-B_x
C = A_yB_x - A_xB_y

§ Нормаль

У такого вида уравнения прямой есть еще одна интересная особенность. Дело в том, что вектор, получаемый с помощью координат (A,B) , перпендикулярен к основной линии. Это легко доказать, зная, что скалярное произведение векторов, между которыми прямой угол, равен 0:
\langle A, B \rangle = 0
Первым вектором будет выступать сама линия, вторым вектором будет выступать вектор \vec{AB} , полученный через (A,B) . Выполним скалярное произведение:
(B_x-A_x)(B_y-A_y) + (B_y-A_y)(A_x-B_x) = (B_xB_y - B_xB_y) + (B_xA_y - B_xA_y) + (A_xB_y - A_xB_y) + (A_xA_y - A_xA_y) = 0
Что и требовалось доказать. Можно еще доказать методом поворота, но это уже метод немного посложнее.
Теперь же, чтобы получить нормаль, необходимо всего лишь найти длину вектора, и разделить этот вектор на свою длину:
\vec{N} = \frac{\vec{AB}}{|AB|}
17 мая, 2020
© 2007-2022 Все кони ништяково запакованы