我怎样才能找到圆的两点之间的角度?

How can I find the angle between two points of a circle?

我有圆和半径的 centerX 和 centerY 值。现在我有 (x1, y1) 点位于圆上。我想知道圆的角度。

我尝试了下面的公式来得到 (x1, y1) 的角度。但它没有给出通用的解决方案。

radian = Math.Atan2(y1 - Cy, x1 - Cx);
angle = radian * (180 / Math.PI);

我的需求请参考截图

谁能告诉我我做错了什么?

根据 MSDN documentation page for Atan2,它 returns 结果介于 -180 和 180 度之间(-pi 到 pi 弧度)。另一方面,您需要 0 到 360。为此,如果最终答案为负,只需将 360 添加到度数即可。

radian = Math.Atan2(y1 - Cy, x1 - Cx);
angle = radian * (180 / Math.PI);
if (angle < 0.0) 
   angle += 360.0;