Expand1D PinWheel changes
This commit is contained in:
@@ -937,16 +937,16 @@ void IRAM_ATTR_YN Segment::setPixelColor(int i, uint32_t col) //WLEDMM: IRAM_ATT
|
||||
break;
|
||||
case M12_sPinWheel: {
|
||||
// i = 0 through 359
|
||||
int centerX = vW / 2;
|
||||
int centerY = vH / 2;
|
||||
float centerX = (vW-1) / 2;
|
||||
float centerY = (vH-1) / 2;
|
||||
// int maxDistance = sqrt(centerX * centerX + centerY * centerY) + 1;
|
||||
|
||||
int distance = 1;
|
||||
int distance = 0;
|
||||
float cosVal = cos(i * DEG_TO_RAD); // i = current angle
|
||||
float sinVal = sin(i * DEG_TO_RAD);
|
||||
while (true) {
|
||||
int x = centerX + distance * cosVal;
|
||||
int y = centerY + distance * sinVal;
|
||||
int x = round(centerX + distance * cosVal);
|
||||
int y = round(centerY + distance * sinVal);
|
||||
// Check bounds
|
||||
if (x < 0 || x >= vW || y < 0 || y >= vH) {
|
||||
break;
|
||||
@@ -1093,6 +1093,14 @@ uint32_t Segment::getPixelColor(int i)
|
||||
else
|
||||
return getPixelColorXY(vW / 2, vH / 2 - i - 1);
|
||||
break;
|
||||
case M12_sPinWheel: //WLEDMM
|
||||
// not 100% accurate, returns outer edge of circle
|
||||
int distance = min(vH, vW) / 2;
|
||||
float centerX = (vW - 1) / 2;
|
||||
float centerY = (vH - 1) / 2;
|
||||
int x = round(centerX + distance * cos(i * DEG_TO_RAD));
|
||||
int y = round(centerY + distance * sin(i * DEG_TO_RAD));
|
||||
return getPixelColorXY(x, y);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user