Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我怎样才能找到一个圆的两点之间的角度?_C#_Math_Geometry_Trigonometry - Fatal编程技术网

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

C# 我怎样才能找到一个圆的两点之间的角度?,c#,math,geometry,trigonometry,C#,Math,Geometry,Trigonometry,我有圆和半径的centerX和centerY值。现在我有(x1,y1)点,它位于圆上。我想知道点的圆的角度 我试着用下面的公式得到(x1,y1)的角度。但它并没有给出通用的解决方案 radian = Math.Atan2(y1 - Cy, x1 - Cx); angle = radian * (180 / Math.PI); 请参考我的要求截图 任何人请允许我指出我做错了什么。?从中,它返回一个介于-180到180度(-pi到pi弧度)之间的结果。另一方面,您需要0到360。要做到这一点,只

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

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

radian = Math.Atan2(y1 - Cy, x1 - Cx);
angle = radian * (180 / Math.PI);
请参考我的要求截图

任何人请允许我指出我做错了什么。?

从中,它返回一个介于-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;
radian=Math.Atan2(y1-Cy,x1-Cx);
角度=弧度*(180/数学π);
如果(角度<0.0)
角度+=360.0;

我认为这是因为atan2给出的答案在-180到180度之间,而你想要0到360度。我认为这涵盖了这里的数学问题,因为跨度已经在[-180,180]之间,如果答案是否定的,用户不应该只在最终答案上加180吗?@Sometowngeek No.例如,当atan2给出-90度时(在中心正上方),OP要求的相应结果为270度。加上180会得到90,这是不正确的。是否有任何直接的解决方案来覆盖360度..?我删除了第二条评论,因为我刚刚意识到我需要在做任何事情之前喝上早晨的咖啡。(此时我的大脑反应迟钝)我正试着将其与——这使用python进行比较