Skip to content

Commit

Permalink
Update lcd.hpp
Browse files Browse the repository at this point in the history
  • Loading branch information
DE8MSH authored Jul 24, 2023
1 parent 0f80a6e commit 834e5c2
Showing 1 changed file with 0 additions and 76 deletions.
76 changes: 0 additions & 76 deletions libs/lcd/lcd.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,85 +86,9 @@ class CDisplay
}
}

void DrawCircle(unsigned char cx, unsigned char cy, unsigned int r, bool bFilled = false)
{
int x = 0;
int y = r;
int d = 3 - 2 * r;
if (!r)
return;

while (y >= x)
{
// when bFilled is true, draw lines to fill the circle
if (bFilled)
{
DrawLine(cx - x, cx + x, cy - y);
DrawLine(cx - y, cx + y, cy - x);
DrawLine(cx - x, cx + x, cy + y);
DrawLine(cx - y, cx + y, cy + x);
}
else
{
if (cx + x < Bitmap.SizeX && cy + y < Bitmap.SizeY)
Bitmap.SetPixel(cx + x, cy - y); // 1st quarter
if (cx + y < Bitmap.SizeX && cy + x < Bitmap.SizeY)
Bitmap.SetPixel(cx + y, cy - x); // 2nd quarter
if (cx - x >= 0 && cy + y < Bitmap.SizeY)
Bitmap.SetPixel(cx - x, cy - y); // 3rd quarter
if (cx - y >= 0 && cy + x < Bitmap.SizeY)
Bitmap.SetPixel(cx - y, cy - x); // 4th quarter
if (cx + x < Bitmap.SizeX && cy + y < Bitmap.SizeY)
Bitmap.SetPixel(cx + x, cy + y); // 5th quarter
if (cx + y < Bitmap.SizeX && cy - x >= 0)
Bitmap.SetPixel(cx + y, cy + x); // 6th quarter
if (cx - x >= 0 && cy - y >= 0)
Bitmap.SetPixel(cx - x, cy + y); // 7th quarter
if (cx - y >= 0 && cy - x >= 0)
Bitmap.SetPixel(cx - y, cy + x); // 8th quarter
}
x++;
if (d < 0)
d += 4 * x + 6;
else
{
y--;
d += 4 * (x - y) + 10;
}
}
}

void DrawRectangle(unsigned char sx, unsigned char sy, unsigned char width, unsigned char height, bool bFilled)
{
unsigned char maxX = (sx + width < Bitmap.SizeX) ? sx + width : Bitmap.SizeX;
unsigned char maxY = (sy + height < Bitmap.SizeY) ? sy + height : Bitmap.SizeY;

// Draw vertical lines
for (unsigned char y = sy; y < maxY; y++)
{
Bitmap.SetPixel(sx, y);
Bitmap.SetPixel(maxX - 1, y);
}

// Draw horizontal lines
for (unsigned char x = sx; x < maxX; x++)
{
Bitmap.SetPixel(x, sy);
Bitmap.SetPixel(x, maxY - 1);
}

// If filled, draw horizontal lines within the rectangle
if (bFilled)
{
for (unsigned char x = sx + 1; x < maxX - 1; x++)
{
for (unsigned char y = sy + 1; y < maxY - 1; y++)
{
Bitmap.SetPixel(x, y);
}
}
}
}

unsigned char PrintCharacter(const char c8Character) const
{
Expand Down

0 comments on commit 834e5c2

Please sign in to comment.