我想要做的是:我有一个对象(蓝点),我想将它指向其他对象,无论它位于它周围的什么位置(绿点)。所以我需要知道这两个对象之间的角度来做我想做的事吗?
http://s13.postimage.org/6jeuphcdj/android_angle.jpg
问题是,我不知道该怎么做才能实现这一目标。我已经使用了 atan、math.tan 和许多其他函数,但没有任何好的结果。
你可以帮帮我吗?提前致谢。
我想要做的是:我有一个对象(蓝点),我想将它指向其他对象,无论它位于它周围的什么位置(绿点)。所以我需要知道这两个对象之间的角度来做我想做的事吗?
http://s13.postimage.org/6jeuphcdj/android_angle.jpg
问题是,我不知道该怎么做才能实现这一目标。我已经使用了 atan、math.tan 和许多其他函数,但没有任何好的结果。
你可以帮帮我吗?提前致谢。
计算对象向量的点积。使用Math.acos
您获得的价值。这会给你一个弧度的角度。
所以,假设你的蓝点在vec1 = (50, 100)
,绿点在vec2 = (100, 400)
。
(x, y)
作为二维向量的元组描述了对象(0, 0)
在屏幕上的位置和距离。要找到这两个向量之间的角度,您需要对它们进行标准的二进制点积运算。这将为您提供一个标量(一个值,cos(Theta)
),但您想要它的倒数(acos
),这是您正在寻找的角度。
您可以在此处对此事有更好的了解
假设蓝点和绿点的坐标分别是(xblue, yblue) 和(xgreen, ygreen)。
蓝点与绿点的夹角为:
double angleRadians = Math.atan2(ygreen-yblue, xgreen-xblue);
如果你想要以度为单位的角度:
double angleDegrees = Math.toDegrees(angleRadians);