C# 两条直线之间的顺时针角

C# 两条直线之间的顺时针角,c#,geometry,drawing,2d,computational-geometry,C#,Geometry,Drawing,2d,Computational Geometry,我想计算两条直线段a和B之间的顺时针角度。因此得到的角度必须在0到360-1度之间。我已经看到了所有其他的答案,但他们给了我负面的角度。谢谢。当然,通过调整以下各项,您可以将任何具有负角度的解决方案调整为始终为0-360: 浮动正=(角度

我想计算两条直线段a和B之间的顺时针角度。因此得到的角度必须在0到360-1度之间。我已经看到了所有其他的答案,但他们给了我负面的角度。谢谢。

当然,通过调整以下各项,您可以将任何具有负角度的解决方案调整为始终为0-360:


浮动正=(角度<0)?(360+角度):角度

要将任何角度转换为C#中的0-359范围,可以使用以下“算法”:

这将使它在任何情况下正常化。除非性能非常关键,否则我不确定是否会过于担心使用内联单行程序,但我会解释它

度数%360
,您将得到一个介于
-359
359
之间的数字。添加
360
将把范围修改为
1
729
之间。然后,最后的
%360
将使其回到
0
359
的范围,我将尝试:

if degrees is between [-360, 360]
    degrees = (degrees + 360) % 360;
else degrees = (degrees % 360) + 360) % 360;
    degrees = ((degrees % 360) + 360) % 360;
if degrees is between [-360, 360]
    degrees = (degrees + 360) % 360;
else degrees = (degrees % 360) + 360) % 360;