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