假设我们从-inf
到+inf
有一些角度值作为输入。
我想仅在-180
和+180
之间进行映射。
我怎样才能做到这一点?
这是我到目前为止所发现的:
(i-180)%360-180
它工作正常,但它将+180
映射到-180
我希望+180
- > +180
。
从技术上讲,这对我来说是一样的,所以这不是什么大问题,但在美学上会更好。
我正在使用Python,但这并不重要。
答案 0 :(得分:1)
如果你不重视数学唯美主义,我认为这可能有效
def f(i):
x = i % 360
if x > 180:
x -= 360
elif x == 180 and i < 0:
x = -x
return x
答案 1 :(得分:1)
假设您在列表-inf
中的值为inf
到sampleList[]
。
您需要将范围-180
中的sampleList []中的值映射到180
。让我们将新的映射元素列表命名为mappedList[]
将x
视为sampleList[]
将y
视为mappedList[]
将maxSL
视为sampleList[]
和
minSL
至少sampleList[]
因此,
y = ((x - minSL)(((180-(-180))/(maxSL - minSL))) + (-180)