Javascript 如何在另一个向量上旋转一个向量?

Javascript 如何在另一个向量上旋转一个向量?,javascript,math,canvas,geometry,Javascript,Math,Canvas,Geometry,我需要把向量b(p2,p3)放在向量a(p1,p2)上 你能告诉我一些配方吗 如果需要旋转角度,请将其计算为 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的标准化

我需要把向量b(p2,p3)放在向量a(p1,p2)上 你能告诉我一些配方吗


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

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的标准化方向向量-将其分量nad除以向量长度

-将归一化向量的分量乘以P2P3的长度

点的顺序在这里很重要。你让他们从P2开始排列,但向量a的起点是P1,不是P2。我不明白这个问题。我总是将第二个向量旋转到第一个向量。在这种情况下(p1,p2)-第一个向量和(p2,p3)-第二个
p3'=p2-(p2-p1)/|p2-p1 |*| | | | | | | | | | | | | | | | | | | | | | |
,这相当于
b'=a/-a/-a/-a | | | | 124。旋转以保留右手规则:叉积应在平面外。