0

可能重复:
从圆心查找点的角度

想象一个圆,中心点是固定的,圆顶部的点也是固定的。我想要的是在圆周围(或圆外)的任何地方给出第三个点,并从 0-359 获得从中心到顶点线的度数。(我实际上绘制了一张很好的图片说明,但我是新的,不能发布它)

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

编辑:感谢您的帮助,尽管我仍在努力解决这个问题。我想知道我正在使用android并且y0坐标在顶部是否相关?在其他平台上是否相反?会不会影响计算?

解决方案:因为我在android中并且y坐标是从上到下计算的,所以我不得不更改a - witha +

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

2 回答 2

4

用于Math.atan2()从东方获取以弧度为单位的角度,然后根据需要进行旋转和转换。

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

于 2013-01-07T10:51:44.553 回答
0

获取中心到点的水平距离和垂直差,一个除以另一个,然后将结果传递给方法Math.asin(double)

结果将以弧度为单位的角度。当你需要它的程度时,你可以使用方法Math.toDegrees(double)。不过,我知道的大多数 API 更喜欢弧度。

于 2013-01-07T10:56:45.510 回答