Arc expansion getPixelColor fix.

This commit is contained in:
Blaz Kristan 2024-08-15 17:22:59 +02:00
parent 577fce69e2
commit 9940d2590b

View File

@ -674,7 +674,7 @@ uint16_t IRAM_ATTR Segment::virtualLength() const {
if (is2D()) { if (is2D()) {
unsigned vW = virtualWidth(); unsigned vW = virtualWidth();
unsigned vH = virtualHeight(); unsigned vH = virtualHeight();
unsigned vLen = vW * vH; // use all pixels from segment unsigned vLen;
switch (map1D2D) { switch (map1D2D) {
case M12_pBar: case M12_pBar:
vLen = vH; vLen = vH;
@ -688,6 +688,9 @@ uint16_t IRAM_ATTR Segment::virtualLength() const {
case M12_sPinwheel: case M12_sPinwheel:
vLen = getPinwheelLength(vW, vH); vLen = getPinwheelLength(vW, vH);
break; break;
default:
vLen = vW * vH; // use all pixels from segment
break;
} }
return vLen; return vLen;
} }
@ -913,6 +916,10 @@ uint32_t IRAM_ATTR Segment::getPixelColor(int i) const
else return getPixelColorXY(0, vH - i -1); else return getPixelColorXY(0, vH - i -1);
break; break;
case M12_pArc: case M12_pArc:
if (i >= vW && i >= vH) {
unsigned vI = sqrt16(i*i/2);
return getPixelColorXY(vI,vI); // use diagonal
}
case M12_pCorner: case M12_pCorner:
// use longest dimension // use longest dimension
return vW>vH ? getPixelColorXY(i, 0) : getPixelColorXY(0, i); return vW>vH ? getPixelColorXY(i, 0) : getPixelColorXY(0, i);