主题:使用指南针传感器输入的 Python:卡在计算中
我正在以名为“开始”的度数读取指南针,旋转大约 360 度并读取“结束”。我想知道开始和结束之间的增量。不是转了多少度,而是结束与开始有多么不同。
degrees_start = 0
degrees_end = 359
#degrees_diff = degrees_end - degrees_start
degrees_diff = (degrees_start-degrees_end) % 360
print(degrees_diff)
'''
test set
degrees_start, degrees_end, deg_diff(expected), deg_diff(observed)
10, 20, +10, +10
20, 10, -10, -10
350, 10, +20, -340
10, 350, -20, +340
0, 359, -1, +359
359, 0, +1, -359
'''
算法很简单:end – start = delta
但我被困在 359 和 1 的边界。示例开始 10,结束 350。或开始 350 结束 10。我尝试了许多算术组合,但没有想出一个始终正确的公式。
有什么建议么?谢谢。
测试以下一些答案:
# test 10,350 -> correct answer -> -20 i.e. 20 deg short of full circle
#degrees_diff = degrees_end - degrees_start # test 10,350 -> 340
#degrees_diff = (degrees_start-degrees_end) % 360 # test 10,350 -> 20
#degrees_diff = (degrees_end - degrees_start) % 360 # test 10,350 -> 340