修正画线函数变量类型

This commit is contained in:
lxbpxylps@126.com 2021-10-06 00:43:18 +08:00
parent ad529f5c53
commit 1dd916937d
2 changed files with 28 additions and 2 deletions

View File

@ -116,7 +116,7 @@ uint16_t GE_Draw_GetPoint(int16_t x, int16_t y)
* @param y3: 0~239
* @param color:
*/
void GE_Draw_Line(int16_t x0, int16_t y0, uint16_t x1, uint16_t y1, uint16_t color)
void GE_Draw_Line(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)
{
//使用 Bresenham 算法
int16_t dx = abs(x1 - x0);
@ -195,6 +195,31 @@ void GE_Draw_Circle(int16_t xm, int16_t ym, uint16_t r, uint16_t color)
} while (x < 0);
}
/**
* @brief
* @param xm: 0~319
* @param ym: 0~239
* @param r:
* @param color:
*/
void GE_Draw_FillCircle(int16_t xm, int16_t ym, uint16_t r, uint16_t color)
{
int16_t x = -r, y = 0, err = 2 - 2 * r, rm = r;
do
{
GE_Draw_Line(xm - x, ym + y, xm + x, ym + y, color);
GE_Draw_Line(xm - y, ym - x, xm + y, ym - x, color);
GE_Draw_Line(xm + x, ym - y, xm - x, ym - y, color);
GE_Draw_Line(xm + y, ym + x, xm - y, ym + x, color);
rm = err;
if (rm > x)
err += ++x * 2 + 1;
if (rm <= y)
err += ++y * 2 + 1;
} while (x < 0);
}
/**
* @brief const unsigned char 4096
*

View File

@ -52,9 +52,10 @@ void GE_Draw_ClrAll(uint16_t color);
void GE_Draw_Fill(int16_t x, int16_t y, uint16_t width, uint16_t height, uint16_t color);
void GE_Draw_Point(int16_t x, int16_t y, uint16_t color);
uint16_t GE_Draw_GetPoint(int16_t x, int16_t y);
void GE_Draw_Line(int16_t x0, int16_t y0, uint16_t x1, uint16_t y1, uint16_t color);
void GE_Draw_Line(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color);
void GE_Draw_Rectangle(int16_t x, int16_t y, uint16_t width, uint16_t height, uint16_t color);
void GE_Draw_Circle(int16_t xm, int16_t ym, uint16_t r, uint16_t color);
void GE_Draw_FillCircle(int16_t xm, int16_t ym, uint16_t r, uint16_t color);
/*****************************************************************************************/