首页 > 解决方案 > 如何在另一个向量上旋转一个向量?

问题描述

我需要将向量 b(p2, p3) 放在向量 a(p1, p2) 上,你能告诉我一些公式吗?

在此处输入图像描述

在此处输入图像描述

标签: javascriptmathcanvasgeometry

解决方案


如果您需要旋转角度,请将其计算为

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 的长度


推荐阅读