Применение значения смещения через список таким образом, который напоминает синусоидальную волну (облегчает вход и выход)
Прежде всего, извините за заголовок, я не уверен, как описать то, что мне нужно, более элегантно.
По сути, я пытаюсь создать функцию, в которую я могу передать список чисел, значение смещения, и заставить эту функцию возвращать этот список со смещением, применяемым в порядке замедления, аналогично синусоида.
Так, например, скажем, я даю этой функции список 0,0,0,0,0,0,0,0,0,0 и смещение 10. Я бы хотел, чтобы она возвращала что-то вроде 0, 2, 5, 8,5, 10, 8,5, 5, 2, 0. Как мне это сделать?
1 ответ
Решение
Это будет делать именно то, что вы просили:
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