Начните с двух конечных точек вашего отрезка, A = (x 1 , y 1 ) и B = (x 2 , y 2 ). (Обратите внимание, что векторы и отрезки - это не одно и то же.)
Рассчитать вектор: v = BA = (x 2 -x 1 , y 2 -y 1 )
Рассчитайте его величину: | v | = sqrt (v 1 2 + v 2 2 )
Нормализуйте его (то есть измените его величину на единицу, оставив направление неизменным): v '= v / | v | = (v 1 / | v |, v 2 / | v |)
Поверните его на 90 градусов по часовой стрелке: v '' = (v ' 2 , -v' 1 )
Умножьте это на H: z = Hv '' = (Hv '' 1 , Hv '' 2 )
Добавьте это к своим двум конечным точкам: A '= A + z = (x 1 + z 1 , y 1 + z 2 ) B '= B + z = (x 2 + z 1 , y 2 + z 2 )
Подписчики могут выглядеть немного запутанно. Это потому, что мы с вами используем разные соглашения: вы используете буквы для измерений и подписки для точек; Я делаю это наоборот. Обычно я пытаюсь использовать язык человека, на вопрос которого я пытаюсь ответить, но в этом случае ваше соглашение становится запутанным, когда в этом есть несколько моментов. Если это действительно неясно, я могу попробовать переписать это.