New led control

This commit is contained in:
Martin Bauer
2021-11-16 22:04:22 +01:00
parent 6a5d4c463c
commit c68114dc4c
13 changed files with 961 additions and 19 deletions

View File

@@ -0,0 +1,17 @@
#include <cstdint>
static inline float bellCurveApproximation(float x, float inverseWidth)
{
if (x < 0)
x = -x;
const auto nx = x * inverseWidth * 4;
if (nx > 2)
return 0.0f;
const auto x2 = nx * nx;
const auto x3 = x2 * nx;
const auto res = 1.0f + 0.27606958941084f * x3 - 0.80213917882168f * x2;
return res < 0.0f ? 0.0f : res;
}

View File

@@ -0,0 +1,16 @@
#pragma once
#include <cstdint>
struct ColorRGBW
{
uint8_t r, g, b, w;
ColorRGBW operator*(float s) const
{
return {uint8_t(s * r),
uint8_t(s * g),
uint8_t(s * b),
uint8_t(s * w)};
}
};