Как повернуть один вектор на другой? - PullRequest
0 голосов
/ 29 мая 2019

Мне нужно поместить вектор b (p2, p3) на вектор a (p1, p2). Не могли бы вы дать мне какую-нибудь формулу?

enter image description here

enter image description here

1 Ответ

1 голос
/ 29 мая 2019

Если вам нужен угол для поворота, рассчитайте его как

dAx = P1.x - P2.x
dAy = P1.y - P2.y
dBx = P3.x - P2.x
dBy = P2.y - P2y
an = atan2(dAx * dBy - dAy * dBx, dAx * dBx + dAy * dBy)

, но ваша картинка, возможно, показывает, что вам нужно просто сделать вектор с длиной P2P3, но коллинеарный с P2P1.В этом случае:
- вычислить длину обоих векторов
- найти вектор нормализованного направления для P2P1 - получить его компонент и делить на длину вектора
- умножить компоненты нормализованного вектора на длину P2P3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...