Spirals, Pinwheels, and Documentation....Oh My! RGB Matrix Effects (#5877)
* Spirals, Pinwheels, and Documentation....Oh My! * Spiral effect band thickness adjustments * Fixing animation spin directionsplanck_thk^2
parent
a0d6c5a113
commit
270b39b2eb
@ -0,0 +1,22 @@ |
||||
#ifndef DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT |
||||
RGB_MATRIX_EFFECT(BAND_PINWHEEL_SAT) |
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS |
||||
|
||||
bool BAND_PINWHEEL_SAT(effect_params_t* params) { |
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max); |
||||
|
||||
HSV hsv = { rgb_matrix_config.hue, 0, rgb_matrix_config.val }; |
||||
uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 2); |
||||
for (uint8_t i = led_min; i < led_max; i++) { |
||||
RGB_MATRIX_TEST_LED_FLAGS(); |
||||
int16_t dx = g_led_config.point[i].x - 112; |
||||
int16_t dy = g_led_config.point[i].y - 32; |
||||
hsv.s = rgb_matrix_config.sat - time - atan2_8(dy, dx) * 3; |
||||
RGB rgb = hsv_to_rgb(hsv); |
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); |
||||
} |
||||
return led_max < DRIVER_LED_TOTAL; |
||||
} |
||||
|
||||
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
@ -0,0 +1,22 @@ |
||||
#ifndef DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL |
||||
RGB_MATRIX_EFFECT(BAND_PINWHEEL_VAL) |
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS |
||||
|
||||
bool BAND_PINWHEEL_VAL(effect_params_t* params) { |
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max); |
||||
|
||||
HSV hsv = { rgb_matrix_config.hue, rgb_matrix_config.sat, 0 }; |
||||
uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 2); |
||||
for (uint8_t i = led_min; i < led_max; i++) { |
||||
RGB_MATRIX_TEST_LED_FLAGS(); |
||||
int16_t dx = g_led_config.point[i].x - 112; |
||||
int16_t dy = g_led_config.point[i].y - 32; |
||||
hsv.v = rgb_matrix_config.val - time - atan2_8(dy, dx) * 3; |
||||
RGB rgb = hsv_to_rgb(hsv); |
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); |
||||
} |
||||
return led_max < DRIVER_LED_TOTAL; |
||||
} |
||||
|
||||
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
@ -0,0 +1,23 @@ |
||||
#ifndef DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT |
||||
RGB_MATRIX_EFFECT(BAND_SPIRAL_SAT) |
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS |
||||
|
||||
bool BAND_SPIRAL_SAT(effect_params_t* params) { |
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max); |
||||
|
||||
HSV hsv = { rgb_matrix_config.hue, 0, rgb_matrix_config.val }; |
||||
uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 2); |
||||
for (uint8_t i = led_min; i < led_max; i++) { |
||||
RGB_MATRIX_TEST_LED_FLAGS(); |
||||
int16_t dx = g_led_config.point[i].x - 112; |
||||
int16_t dy = g_led_config.point[i].y - 32; |
||||
uint8_t dist = sqrt16(dx * dx + dy * dy); |
||||
hsv.s = rgb_matrix_config.sat + dist - time - atan2_8(dy, dx); |
||||
RGB rgb = hsv_to_rgb(hsv); |
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); |
||||
} |
||||
return led_max < DRIVER_LED_TOTAL; |
||||
} |
||||
|
||||
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
@ -0,0 +1,23 @@ |
||||
#ifndef DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL |
||||
RGB_MATRIX_EFFECT(BAND_SPIRAL_VAL) |
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS |
||||
|
||||
bool BAND_SPIRAL_VAL(effect_params_t* params) { |
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max); |
||||
|
||||
HSV hsv = { rgb_matrix_config.hue, rgb_matrix_config.sat, 0 }; |
||||
uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 2); |
||||
for (uint8_t i = led_min; i < led_max; i++) { |
||||
RGB_MATRIX_TEST_LED_FLAGS(); |
||||
int16_t dx = g_led_config.point[i].x - 112; |
||||
int16_t dy = g_led_config.point[i].y - 32; |
||||
uint8_t dist = sqrt16(dx * dx + dy * dy); |
||||
hsv.v = rgb_matrix_config.val + dist - time - atan2_8(dy, dx); |
||||
RGB rgb = hsv_to_rgb(hsv); |
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); |
||||
} |
||||
return led_max < DRIVER_LED_TOTAL; |
||||
} |
||||
|
||||
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
@ -0,0 +1,22 @@ |
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_PINWHEEL |
||||
RGB_MATRIX_EFFECT(CYCLE_PINWHEEL) |
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS |
||||
|
||||
bool CYCLE_PINWHEEL(effect_params_t* params) { |
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max); |
||||
|
||||
HSV hsv = { 0, rgb_matrix_config.sat, rgb_matrix_config.val }; |
||||
uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 4); |
||||
for (uint8_t i = led_min; i < led_max; i++) { |
||||
RGB_MATRIX_TEST_LED_FLAGS(); |
||||
int16_t dx = g_led_config.point[i].x - 112; |
||||
int16_t dy = g_led_config.point[i].y - 32; |
||||
hsv.h = atan2_8(dy, dx) + time; |
||||
RGB rgb = hsv_to_rgb(hsv); |
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); |
||||
} |
||||
return led_max < DRIVER_LED_TOTAL; |
||||
} |
||||
|
||||
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
@ -0,0 +1,23 @@ |
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_SPIRAL |
||||
RGB_MATRIX_EFFECT(CYCLE_SPIRAL) |
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS |
||||
|
||||
bool CYCLE_SPIRAL(effect_params_t* params) { |
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max); |
||||
|
||||
HSV hsv = { 0, rgb_matrix_config.sat, rgb_matrix_config.val }; |
||||
uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 2); |
||||
for (uint8_t i = led_min; i < led_max; i++) { |
||||
RGB_MATRIX_TEST_LED_FLAGS(); |
||||
int16_t dx = g_led_config.point[i].x - 112; |
||||
int16_t dy = g_led_config.point[i].y - 32; |
||||
uint8_t dist = sqrt16(dx * dx + dy * dy); |
||||
hsv.h = dist - time - atan2_8(dy, dx); |
||||
RGB rgb = hsv_to_rgb(hsv); |
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); |
||||
} |
||||
return led_max < DRIVER_LED_TOTAL; |
||||
} |
||||
|
||||
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_CYCLE_SPIRAL
|
Loading…
Reference in new issue