C# 我怎样才能找到一个圆的两点之间的角度?
我有圆和半径的centerX和centerY值。现在我有(x1,y1)点,它位于圆上。我想知道点的圆的角度 我试着用下面的公式得到(x1,y1)的角度。但它并没有给出通用的解决方案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。要做到这一点,只
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进行比较