我有一个基于 Arduino 的灯,通过 FastLED 库具有移动彩虹效果。
代码是:
void rainbow(){
hue += 2;
for (int i = 0; i < NUM_LEDS; i++)
leds[i] = CHSV((byte)(hue + i * float(255 / NUM_LEDS)), 255, 255);
}
所以我不太喜欢彩虹中的蓝色渐变,所以我想去掉它(我猜它是从 135 到 180)。
以下假设你是一个理性的人,喜欢紫色和浅绿色,但不喜欢蓝色占主导地位
好奇你最终会做什么。以下的一般信息很有趣。
https://github.com/FastLED/FastLED/wiki/FastLED-HSV-Colors https://github.com/FastLED/FastLED/wiki/Pixel-reference
也许转换为 RGB,将 B 抑制为不超过 R 或 G,然后按原样使用 (rgbNew) 或再次转换为 HSV (hsvNew),具体取决于您在做什么。
CRGB rgb;
hsv2rgb_rainbow(hsv, rgb); // or hsv2rgb_spectrum maybe
long minBlue = min(max(rgb.r, rgb.g), rgb.b);
CRGB rgbNew = ((long)rgb.r << 16L) | ((long)rgb.g << 8L) | (long)minBlue;
CHSV hsvNew = rgb2hsv_approximate(rgbNew);