如何发现两个物体之间的角度?

时间:2012-11-24 21:20:33

标签: java android math angle

我想要做的是以下内容:我有一个对象(蓝点),我想将它指向其他对象,无论它位于何处(绿点)。所以我需要知道这两个对象之间的角度来做我想做的事情吗?

http://s13.postimage.org/6jeuphcdj/android_angle.jpg

问题是,我不知道该怎么做才能实现这一目标。我已经使用过atan,math.tan等许多其他函数但没有任何好的结果。

你可以帮帮我吗?提前谢谢。

2 个答案:

答案 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);