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