You can now define a maximum distance between colors to blend to during random effects in order to prevent extremely colorful displays.

This commit is contained in:
2021-01-10 16:33:04 +01:00
parent 4b3797f4fc
commit 63bb2b43cf
2 changed files with 11 additions and 10 deletions

View File

@ -220,11 +220,9 @@ void loop() {
}
if (random8(128)==0) {
if (active_mode == AM_FIRST_CORNER) {
corners[0]->blend_to(CHSV(random8(), 255, 255));
} else {
corners[random16(corners.size())]->blend_to(CHSV(random8(), 255, 255));
}
uint16_t corner = (active_mode == AM_FIRST_CORNER) ? 0 : random16(corners.size());
CHSV color = rgb2hsv_approximate(corners[corner]->color);
corners[corner]->blend_to(CHSV(color.h - COLOR_DIFFERENCE + random8(2*COLOR_DIFFERENCE), 255, 255));
}
} else if (active_mode == AM_NODES || active_mode == AM_FIRST_NODE) {
for(Node* node : nodes) {
@ -233,11 +231,9 @@ void loop() {
}
if (random8(128)==0) {
if (active_mode == AM_FIRST_NODE) {
nodes[0]->blend_to(CHSV(random8(), 255, 255));
} else {
nodes[random8(nodes.size())]->blend_to(CHSV(random8(), 255, 255));
}
uint16_t corner = (active_mode == AM_FIRST_NODE) ? 0 : random8(nodes.size());
CHSV color = rgb2hsv_approximate(corners[corner]->color);
nodes[corner]->blend_to(CHSV(color.h - COLOR_DIFFERENCE + random8(2*COLOR_DIFFERENCE), 255, 255));
}
} else if (active_mode == AM_FLASH) {
for (Node* node : nodes) {