Есть ли способ получить координату точки?

#algorithm

#алгоритм

Вопрос:

Это вопрос алгоритма. Допустим, мы знаем координаты x1y1 и x2y2, есть ли способ получить координаты x3y3 (слева) и x4y4 (справа) ровно на 90 градусов — 1 метр от x1y1?

введите описание изображения здесь

Комментарии:

1. Поменяйте местами компоненты x / y разницы между P1 и P2, затем разделите на абсолютное значение и добавьте к P1 или что-то в этом роде?

Ответ №1:

Найдите разницу между P1 и P2, поменяйте местами компоненты x / y, разделите их на абсолютное значение разницы и добавьте / вычтите их из P1 соответственно. Пример в Python:

 >>> P = namedtuple("P", "x y")
>>> p1 = P(3, 4)
>>> p2 = P(5, 3)
>>> dx = p2.x - p1.x
>>> dy = p2.y - p1.y
>>> a = (dx**2   dy**2)**.5
>>> P(p1.x   dy/a, p1.y - dx/a)
P(x=2.552786404500042, y=3.1055728090000843)
>>> P(p1.x - dy/a, p1.y   dx/a)
P(x=3.447213595499958, y=4.894427190999916)