以类似于正弦波的方式在列表中应用值偏移(缓入和缓出)
Applying a value offset through a list in a way that resembles a sine wave (eases in and out)
首先,抱歉标题太血腥了,我不确定如何更优雅地描述我所追求的。
基本上,我正在尝试创建一个函数,我可以将数字列表传递给该函数,将偏移值传递给该函数,并使该函数 return 具有在 [= 中应用偏移量的列表17=], easing-out 方式, similar to a sine wave.
例如,假设我给这个函数一个 0,0,0,0,0,0,0,0,0,0 和偏移量 10 的列表。我希望它 return 类似 0、2、5、8.5、10、8.5、5、2、0。我该怎么做?
这将完全满足您的要求:
import math
d = [0] * 9
offset = 10
dlen = len(d)
r = [d[i] + offset * math.sin(i * math.pi / (dlen - 1))
for i in range(dlen)]
print d
print r
首先,抱歉标题太血腥了,我不确定如何更优雅地描述我所追求的。
基本上,我正在尝试创建一个函数,我可以将数字列表传递给该函数,将偏移值传递给该函数,并使该函数 return 具有在 [= 中应用偏移量的列表17=], easing-out 方式, similar to a sine wave.
例如,假设我给这个函数一个 0,0,0,0,0,0,0,0,0,0 和偏移量 10 的列表。我希望它 return 类似 0、2、5、8.5、10、8.5、5、2、0。我该怎么做?
这将完全满足您的要求:
import math
d = [0] * 9
offset = 10
dlen = len(d)
r = [d[i] + offset * math.sin(i * math.pi / (dlen - 1))
for i in range(dlen)]
print d
print r