我想计算两条线段A和B之间的顺时针角度.因此,所得角度必须在0到360-1度之间.我已经在SO中看到了所有其他答案,但是它们给了我负面角度.谢谢.
解决方法:
要将任何角度转换为C#中的0-359范围,可以使用以下“算法”:
public int Normalise (int degrees) {
int retval = degrees % 360;
if (retval < 0)
retval += 360;
return retval;
}
C#遵循与C和C相同的规则,i%360将为您提供-359到359之间的任何整数值,然后第二行确保其范围在0到359(含)之间.
单行的偷偷摸摸的版本:
degrees = ((degrees % 360) + 360) % 360;
这将在所有条件下将其标准化.除非性能至关重要,否则我不确定是否会过多地担心使用内联式单缸衬管,但我将对此进行解释.
从度数%360中,您将获得-359至359之间的数字.加360将范围更改为1至729.最后的%360将其返回至0至359范围.