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