如何将[0..360]角度映射到[-180..180]?正负角度转换方法
有符号角度[-180..180]与无符号角度[0..360]的双向简洁转换
有符号角度转无符号角度
- 简洁公式:
(d + 360) % 360 - 说明:加360是为了规避部分编程语言中负数取模的歧义问题,确保计算结果稳定落在[0, 360]区间。比如输入-180会得到180,输入-90会得到270。
无符号角度转有符号角度
如果用条件判断写法if d < 180: d else: d - 360虽然可行,但不够简洁,推荐一行式转换公式:
- 简洁公式:
(a + 180) % 360 - 180 - 验证示例:输入
[0, 90, 180, 270, 360],计算后得到[0, 90, 180, -90, 0],完全符合需求。 - 说明:通过先加180偏移数值,取模360后再减去180,自动将[180, 360]区间的无符号角度映射到[-180, 0]区间,无需分支判断,实现极简转换。
内容的提问来源于stack exchange,提问作者iter
相关产品推荐
相关产品推荐

