如何将单个电位计值转换为R、G、B?

2024-06-13 08:06:09 发布

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

我用的是一个输出值为0-255的电位计。我想要它做的是改变一个RGB LED的颜色,它包含256个步骤,它将以尽可能高的精度显示LED上的所有颜色。在

问题: 如何将单个值(0-255)转换为可应用于LED的rgb代码?在

最明显的解决方案是创建一个包含所有256个可能值的字典,并手动为这些值指定RGB代码。我不想这么做,我正在试图找到一个更数学的解决方案。在


Tags: 代码led字典颜色步骤精度数学rgb
1条回答
网友
1楼 · 发布于 2024-06-13 08:06:09

使用matplotlib colormaps之一。我建议使用jet颜色图,因为大多数人都熟悉蓝色表示小值而红色表示大值的解释。在

from matplotlib import cm

pot_values = [0, 51, 102, 153, 204, 255]
rgb = []
for x in pot_values:
    val = cm.jet(float(x)/255)[:3]  # The 4th element is gamma
    rgb.append([round(x*255) for x in val])

print(rgb)

# Output:
# [[0.0, 0.0, 128.0],
#  [0.0, 76.0, 255.0],
#  [41.0, 255.0, 206.0],
#  [206.0, 255.0, 41.0],
#  [255.0, 104.0, 0.0],
#  [128.0, 0.0, 0.0]]

相关问题 更多 >