我正在试图找到一个合适的公式来计算一个简单的任务,但在实践中是一个很大的数学头痛。
我想找出将矢量的角度(X,Y,角度)变为面向坐标(X,Y)所需的偏移量
我的矢量并不总是面向360度,所以我也需要它作为变量.. 在我破坏我的电脑屏幕之前希望得到一个答案。 谢谢。
答案 0 :(得分:2)
输入
p1 = (x1,y1)
point1(矢量来源)p2 = (x2,y2)
point2 a1 = 360 deg
向量方向da=?
更改a1以匹配p2-p1
解决方案1:
da=a1-a2=a1-atanxy(x2-x1,y1-y1)
解决方案2:
v1=(cos(a1),sin(a1))
v2=(x2-x1,y2-y1)
da=acos(dot(v1,v2)/(|v1|*|v2|))
或同样略有不同
v1=(cos(a1),sin(a1))
v2=(x2-x1,y2-y1)
v2/=|v2|
//生成v2单位向量,v1已经是单位da=acos(dot(v1,v2))
这样:
da=acos((cos(a1)*(x2-x1)+sin(a1)*(y2-y1)/sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));
[注释]
答案 1 :(得分:0)
载体之间的差异也是一个载体。
然后计算tangens(y part / x part)并将其反转为一个角度。
当然,如果x = 0,则使用y的符号。
答案 2 :(得分:0)
如果面对的坐标是(x2,y2)
deltaY = y2 - y1
deltaX = x2 - x1
使用此公式,您可以获得两点之间的角度...
angleInDegrees = arctan(deltaY / deltaX)* 180 / PI
减去矢量的原始角度,您将得到正确的偏移量!