Вращать многолинейные (серии точек), чтобы соответствовать региону - PullRequest
0 голосов
/ 24 мая 2018

У меня есть произвольная многострочная (серия точек XY), начиная с (0, 0).Задача состоит в том, чтобы пересчитать все позиции таким образом, чтобы последняя точка лежала на заданном ребре (значение Y).См. Иллюстрацию.

illustration

Есть ли какой-нибудь алгоритм для этого?

1 Ответ

0 голосов
/ 24 мая 2018

Если последняя точка имеет координаты (xe, ye), то угол направления от начала координат до этой точки равен

fie =  Atan2(ye, xe)

Расстояние от начала координат до этой точки равно

len = Sqrt(ye*ye + xe*xe)

Требуется у-положение yw, поэтому угол направления равен

fiw = Arcsin(yw / len)

Так что вам нужно повернуть все точки на разность углов

dfi = fiw - fie  = Arcsin(yw / len) - Atan2(ye, xe)
...