Java 从圆的中心点求角

Java 从圆的中心点求角,java,android,math,geometry,angle,Java,Android,Math,Geometry,Angle,可能重复: 想象一个圆,圆心是固定的,圆顶的点也是固定的。我想要的是在圆周围(或圆外)的任何地方给出第三个点,并从0-359获得从中心到顶点线的度数。(我确实画了一张很好的图片,但我是新的,不能发布) 给出一些上下文,圆是一个小行星,我想在表面上放置一个小建筑物,建筑物的底部相切。我需要我的建筑位图的旋转角度 编辑:谢谢你的帮助,不过我仍然在努力解决这个问题。我想知道我使用的是安卓系统,而y0坐标位于顶部,这是否相关?在其他平台上,情况是否相反?这会影响计算吗 解决方案:因为我在安卓系统中,y

可能重复:

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

给出一些上下文,圆是一个小行星,我想在表面上放置一个小建筑物,建筑物的底部相切。我需要我的建筑位图的旋转角度

编辑:谢谢你的帮助,不过我仍然在努力解决这个问题。我想知道我使用的是安卓系统,而y0坐标位于顶部,这是否相关?在其他平台上,情况是否相反?这会影响计算吗

解决方案:因为我在安卓系统中,y坐标是从上到下计算的,所以我不得不用a来改变a+

degrees =  Math.atan2(x - centerX, -y + centerY);
// and to make it count 0-360
if (degrees < 0) {degrees += 2 * Math.PI;}
degrees=Math.atan2(x-centerX,-y+centerY);
//并使其计数为0-360
如果(度<0){degrees+=2*Math.PI;}
使用
Math.atan2()
从东方获取角度(弧度),然后根据需要旋转和转换

请注意,
atan2
被定义为
atan2(y,x)
而不是
atan2(x,y)
,正如您所期望的那样。

使用
Math.atan2()
从东方获取以弧度表示的角度,然后根据需要进行旋转和转换


请注意,
atan2
被定义为
atan2(y,x)
而不是
atan2(x,y)
,正如您所期望的那样。

获取中心和点之间的水平距离和垂直差,将一个除以另一个,然后将结果传递给方法


结果将是中的角度。当你需要它的程度,你可以使用的方法。不过,我知道的大多数API都喜欢弧度。

获取中心和点之间的水平距离和垂直差,将一个除以另一个,然后将结果传递给该方法


结果将是中的角度。当你需要它的程度,你可以使用的方法。不过,我知道的大多数API都更喜欢弧度。

我想看看三角函数中的正弦和余弦。这就是您需要的看一看可能的解决方案,或者至少朝着正确的方向推动;)我来看看三角函数中的正弦和余弦,这就是你需要的看一看可能的解决方案,或者至少朝着正确的方向推动;)基本上是这样,我的疏忽是我在安卓系统中,Y坐标是从上到下计算的,最后我不得不用++替换a。这是非常重要的,我的疏忽是我在安卓系统中,Y坐标是从上到下计算的,最后我不得不用++替换a。