我必须测试指南针读数和设定点之间的度数差异是否在x量内。
This post描述了我之后的内容,它只是在C#中,而我无法解释该解决方案的工作方式。
... E.g
Compass Reading Set Point Difference (absolute)
360 1 1
50 60 10
1 360 1
答案 0 :(得分:1)
这是代码转换为python:
def getHeadingError(init, final):
if init > 360 or init < 0 or final > 360 or final < 0:
raise Exception("out of range")
diff = final - init
absDiff = abs(diff)
if absDiff == 180:
return absDiff
elif absDiff < 180:
return diff
elif final > init:
return absDiff - 360
else:
return 360 - absDiff
print("init -- final -- error")
print("360 -- 1 -- {}".format(getHeadingError(360, 1)))
print("50 -- 60 -- {}".format(getHeadingError(50, 60)))
print("1 -- 360 -- {}".format(getHeadingError(1, 360)))
我希望这可以帮到你