基于时间的rgb颜色转换

2024-04-27 12:00:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试基于定义的时间跨度编写python唤醒灯函数。函数应该处理rgb值的列表[(0,0,0), (204,156,0), (255,255,255)]。零表示led熄灭,255表示全亮度。duration_of_light是固定的秒数。这意味着对于n(要达到的rgb值的数量),我将有(n-1)个相等的时间跨度(timespan = duration_of_light/n-1

例如:

timespan = 30/3-1 = 15(在(0,0,0)(204,156,0)转换之间15秒,在(204,156,0)(255,255,255)转换之间15秒

rgb值增加一个固定的像素偏移量是一个非常简单的过程(我用偏移量每秒增加相应的rgb值:

offset_red = 204-0/timespan=13.6 #(rounded -> +14 to the red value each second).
offset_green = 156-0/timespan=10.4 #(rounded -> +10 to the green value each second).
offset_blue = 0-0 #(not increased in the first timespan)

但这导致了一个醒着的光线没有平滑的过渡,因为它以每秒固定数量的红色、绿色或蓝色(如预期的)递增

对于基于时间的平滑转换,是否有任何解决方案不需要实现额外的线程来分别更新rgb值?我认为至少需要两个额外的线程


Tags: oftheto函数数量valuergbred