从圆心的中心点找到角度

时间:2013-01-07 10:48:29

标签: java android math geometry angle

  

可能重复:
  Find angle of a point from center of circle

想象一个圆圈,中心点是固定的,就像圆圈顶部的点一样。我想要的是在圆圈周围(或圆圈外)的任意位置给出第三个点,并从0-359获得从中心到顶点线的度数。 (我实际上绘制了一张漂亮的图片,但是我很新并且无法发布它)

为了给出一些背景,圆圈是一个小小的星球,我想在表面上放置一个小建筑物,建筑物的底部在切线处。我需要构建位图的旋转角度。

编辑:感谢您的帮助,我仍然在努力解决这个问题。我想知道我使用android并且y0坐标位于顶部是否相关?它是在其他平台上的另一种方式吗?会影响计算吗?

解决方案:因为我在Android中并且y coords从上到下计数我不得不改变一个 - 并且+

degrees =  Math.atan2(x - centerX, -y + centerY);
// and to make it count 0-360
if (degrees < 0) {degrees += 2 * Math.PI;}

2 个答案:

答案 0 :(得分:4)

使用Math.atan2()从东方获取弧度角度,然后根据需要旋转和转换。

请注意,atan2被定义为atan2(y, x) NOT atan2(x, y),正如您所料。

答案 1 :(得分:0)

获取水平距离和中心与点之间的垂直差异,将它们除以另一个,并将结果传递给方法Math.asin(double)

结果将是radians中的角度。当您需要它时,您可以使用方法Math.toDegrees(double)。我知道的大多数API都更喜欢弧度。