summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--led_test.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/led_test.c b/led_test.c
index ed65a0baa5..d358ef81eb 100644
--- a/led_test.c
+++ b/led_test.c
@@ -86,10 +86,13 @@ static uint8_t crossfade_start_frame[NUM_ROWS][NUM_COLS];
static uint8_t crossfade_end_frame[NUM_ROWS][NUM_COLS];
static uint8_t compute_gradient_color(float t, float index, float num) {
- float d = fabs(index - t);
- if (d > num / 2.0f) {
+ const float target = t * (num - 1.0f);
+ const float half_num = num / 2.0f;
+ float d = fabs(index - target);
+ if (d > half_num) {
d = num - d;
}
+ d = 1.0f - (d / half_num);
return (uint8_t)(255.0f * d);
}