Отказ от ответственности: я специалист по изображениям и видео, и я не использовал Raspberry Pi для освещения.Я полагаю, что сейчас ваше освещение меняется от красного к зеленому и синему, и внезапно меняется.Я описываю способ сделать это изменение более постепенным, но, возможно, он неэффективен, и может быть более простой способ, специфичный для платформы.
Вам необходимо определить время (скажем, t ) для перехода.Кроме того, вы должны понимать, что цвет задается посредством пикселя.fill ((255,0,0)).Эти три значения (255,0,0) представляют собой (R, G, B) *.Если вы хотите промежуточные цвета, вам нужно иметь их комбинацию.Так, например, если вы хотите перейти с красного на синий, вам нужна последовательность из них с некоторыми промежуточными значениями.Линейно, это может быть что-то вроде:
max=255
step = 255//t
for i in range(0,t):
red = 255 - (t*step)
green = 0
blue = 255 - red
RGBtriplet = (red, green, blue)
Это вопрос передачи RGBtriplet в пиксель. Fill ().В качестве альтернативы вы можете использовать вашу функцию:
blue = 255 * (0.5 * (1 + sin((t*pi)-(pi/2))))
green = 0
red = 255 - blue
Это должно дать вам нелинейный цветовой переход, где синий цвет изменяется от 0 до 255, а красный - от 255 до 0 (красный на синий).
* Или возможно (B, G, R).