计算两个罗盘标题之间的差异Python

时间:2017-08-13 11:10:48

标签: python

我必须测试指南针读数和设定点之间的度数差异是否在x量内。

This post描述了我之后的内容,它只是在C#中,而我无法解释该解决方案的工作方式。

... E.g

Compass Reading  Set Point  Difference (absolute)
360              1          1
50               60         10
1                360        1

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)))

我希望这可以帮到你