printHeart

This commit is contained in:
Patrick Haßel 2025-01-23 23:07:21 +01:00
parent e24d7c5a25
commit dd7a1e935a
2 changed files with 179 additions and 0 deletions

View File

@ -231,6 +231,184 @@ public:
return countof(sym[0]);
}
// TODO REMOVE QUICK & DIRTY
uint8_t printHeart(uint8_t xPos, uint8_t yPos) {
bool a[1][1] = {
{X},
};
bool b[3][3] = {
{X, _, X},
{X, X, X},
{_, X, _},
};
bool c[5][5] = {
{_, X, _, X, _},
{X, _, X, _, X},
{X, _, _, _, X},
{_, X, _, X, _},
{_, _, X, _, _},
};
bool d[7][7] = {
{_, X, X, _, X, X, _},
{X, _, _, X, _, _, X},
{X, _, _, _, _, _, X},
{X, _, _, _, _, _, X},
{_, X, _, _, _, X, _},
{_, _, X, _, X, _, _},
{_, _, _, X, _, _, _},
};
bool e[9][9] = {
{_, _, X, _, _, _, X, _, _},
{_, X, _, X, _, X, _, X, _},
{X, _, _, _, X, _, _, _, X},
{X, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, X},
{_, X, _, _, _, _, _, X, _},
{_, _, X, _, _, _, X, _, _},
{_, _, _, X, _, X, _, _, _},
{_, _, _, _, X, _, _, _, _},
};
bool f[11][11] = {
{_, _, X, X, _, _, _, X, X, _, _},
{_, X, _, _, X, _, X, _, _, X, _},
{X, _, _, _, _, X, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, X},
{_, X, _, _, _, _, _, _, _, X, _},
{_, _, X, _, _, _, _, _, X, _, _},
{_, _, _, X, _, _, _, X, _, _, _},
{_, _, _, _, X, _, X, _, _, _, _},
{_, _, _, _, _, X, _, _, _, _, _},
};
bool g[13][13] = {
{_, _, _, X, _, _, _, _, _, X, _, _, _},
{_, _, X, _, X, _, _, _, X, _, X, _, _},
{_, X, _, _, _, X, _, X, _, _, _, X, _},
{X, _, _, _, _, _, X, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, X},
{_, X, _, _, _, _, _, _, _, _, _, X, _},
{_, _, X, _, _, _, _, _, _, _, X, _, _},
{_, _, _, X, _, _, _, _, _, X, _, _, _},
{_, _, _, _, X, _, _, _, X, _, _, _, _},
{_, _, _, _, _, X, _, X, _, _, _, _, _},
{_, _, _, _, _, _, X, _, _, _, _, _, _},
};
bool h[15][15] = {
{_, _, _, X, X, _, _, _, _, _, X, X, _, _, _},
{_, _, X, _, _, X, _, _, _, X, _, _, X, _, _},
{_, X, _, _, _, _, X, _, X, _, _, _, _, X, _},
{X, _, _, _, _, _, _, X, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{_, X, _, _, _, _, _, _, _, _, _, _, _, X, _},
{_, _, X, _, _, _, _, _, _, _, _, _, X, _, _},
{_, _, _, X, _, _, _, _, _, _, _, X, _, _, _},
{_, _, _, _, X, _, _, _, _, _, X, _, _, _, _},
{_, _, _, _, _, X, _, _, _, X, _, _, _, _, _},
{_, _, _, _, _, _, X, _, X, _, _, _, _, _, _},
{_, _, _, _, _, _, _, X, _, _, _, _, _, _, _},
};
bool i[17][17] = {
{_, _, _, _, X, _, _, _, _, _, _, _, X, _, _, _, _},
{_, _, _, X, _, X, _, _, _, _, _, X, _, X, _, _, _},
{_, _, X, _, _, _, X, _, _, _, X, _, _, _, X, _, _},
{_, X, _, _, _, _, _, X, _, X, _, _, _, _, _, X, _},
{X, _, _, _, _, _, _, _, X, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{_, X, _, _, _, _, _, _, _, _, _, _, _, _, _, X, _},
{_, _, X, _, _, _, _, _, _, _, _, _, _, _, X, _, _},
{_, _, _, X, _, _, _, _, _, _, _, _, _, X, _, _, _},
{_, _, _, _, X, _, _, _, _, _, _, _, X, _, _, _, _},
{_, _, _, _, _, X, _, _, _, _, _, X, _, _, _, _, _},
{_, _, _, _, _, _, X, _, _, _, X, _, _, _, _, _, _},
{_, _, _, _, _, _, _, X, _, X, _, _, _, _, _, _, _},
{_, _, _, _, _, _, _, _, X, _, _, _, _, _, _, _, _},
};
bool j[19][19] = {
{_, _, _, _, X, X, _, _, _, _, _, _, _, X, X, _, _, _, _},
{_, _, _, X, _, _, X, _, _, _, _, _, X, _, _, X, _, _, _},
{_, _, X, _, _, _, _, X, _, _, _, X, _, _, _, _, X, _, _},
{_, X, _, _, _, _, _, _, X, _, X, _, _, _, _, _, _, X, _},
{X, _, _, _, _, _, _, _, _, X, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
{_, X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X, _},
{_, _, X, _, _, _, _, _, _, _, _, _, _, _, _, _, X, _, _},
{_, _, _, X, _, _, _, _, _, _, _, _, _, _, _, X, _, _, _},
{_, _, _, _, X, _, _, _, _, _, _, _, _, _, X, _, _, _, _},
{_, _, _, _, _, X, _, _, _, _, _, _, _, X, _, _, _, _, _},
{_, _, _, _, _, _, X, _, _, _, _, _, X, _, _, _, _, _, _},
{_, _, _, _, _, _, _, X, _, _, _, X, _, _, _, _, _, _, _},
{_, _, _, _, _, _, _, _, X, _, X, _, _, _, _, _, _, _, _},
{_, _, _, _, _, _, _, _, _, X, _, _, _, _, _, _, _, _, _},
};
const auto now = millis();
static auto step = 0;
static auto last = now;
if (now - last >= 100) {
last = now;
step = (step + 1) % 30;
}
bool *s;
switch (step) {
case 0:
s = (bool *) a;
break;
case 1:
s = (bool *) b;
break;
case 2:
s = (bool *) c;
break;
case 3:
s = (bool *) d;
break;
case 4:
s = (bool *) e;
break;
case 5:
s = (bool *) f;
break;
case 6:
s = (bool *) g;
break;
case 7:
s = (bool *) h;
break;
case 8:
s = (bool *) i;
break;
case 9:
s = (bool *) j;
break;
default:
return 0;
}
auto size = step * 2 + 1;
for (int y = 0; y < size; ++y) {
for (int x = 0; x < size; ++x) {
if (s[y * size + x]) {
set(xPos + x - step, yPos + y - step, RED);
}
}
}
return size;
}
// TODO REMOVE QUICK & DIRTY
uint8_t printI(uint8_t xPos, uint8_t yPos, Color color) {
for (int y = 0; y < 5; ++y) {

View File

@ -281,6 +281,7 @@ private:
x += display.print(x, 1, 3, WHITE, true);
x += 1;
x += display.print(x, 1, 2, WHITE, true);
display.printHeart(15, 4);
} else {
uint8_t x = 8;
x += display.print(x, 1, year / 1000 % 10, WHITE, true) + 1;