12 lines
469 B
C++
12 lines
469 B
C++
#include "effect_twirl.h"
|
|
#include "functions.h"
|
|
|
|
void TwirlEffect::loop() {
|
|
for (int x=0; x<window.w; x++) for (int y=0; y<window.h; y++) {
|
|
uint8_t angle = (x==center_x && y==center_y) ? 0 : atan2(y - center_y, x - center_x) / M_PI * 128 + 128 + angleOffset;
|
|
uint8_t brightness = sqrt16((center_x - x) * (center_x - x) + (center_y - y) * (center_y - y)) & 0xFF;
|
|
setPixel(window, x, y, CHSV(angle, (brightness<<5) & 0xFF, 255));
|
|
}
|
|
angleOffset += 1;
|
|
}
|