В задаче проведения прямоугольных полигонов граничащих с линией нужно было зная вектор линии провести перпендикуляр к ней и захотелось сделать это наиболее простым способом. Оказалось, что это действительно просто.
Положим, что задан вектор R с координатами (x,y). Чтобы получить вектор перпендикулярный ему, достаточно переставить значения координат местами и у одной из координат сменить знак:
R=(x,y)
R′=(y,−x)
R″=(−y,x)
В самом деле, скалярное произведение их с исходным вектором равно нулю независимо от исходных значений x и y:
(R,R′)=xy−yx=0
(R,R″)=−xy+yx=0
Нужно лишь учесть что получается вектор в точности той же длины что и исходный. И получаемые два вектора повернуты в разные стороны. На плоскости других перпендикулярных векторов больше нет, так что задача решена алгоритмически довольно просто.
Комментариев нет:
Отправить комментарий