📄 graphic.c
字号:
extern void GLCD_SetPixel(char x, char y, char color);
const unsigned char color = 1;
void GLCD_Rectangle(unsigned char x, unsigned char y, unsigned char b, unsigned char a)
{
unsigned char j; // zmienna pomocnicza
// rysowanie linii pionowych (boki)
for (j = 0; j < a; j++) {
GLCD_SetPixel(x, y + j, color);
GLCD_SetPixel(x + b - 1, y + j, color);
}
// rysowanie linii poziomych (podstawy)
for (j = 0; j < b; j++) {
GLCD_SetPixel(x + j, y, color);
GLCD_SetPixel(x + j, y + a - 1, color);
}
}
void GLCD_Circle(unsigned char cx, unsigned char cy ,unsigned char radius)
{
int x, y, xchange, ychange, radiusError;
x = radius;
y = 0;
xchange = 1 - 2 * radius;
ychange = 1;
radiusError = 0;
while(x >= y)
{
GLCD_SetPixel(cx+x, cy+y, color);
GLCD_SetPixel(cx-x, cy+y, color);
GLCD_SetPixel(cx-x, cy-y, color);
GLCD_SetPixel(cx+x, cy-y, color);
GLCD_SetPixel(cx+y, cy+x, color);
GLCD_SetPixel(cx-y, cy+x, color);
GLCD_SetPixel(cx-y, cy-x, color);
GLCD_SetPixel(cx+y, cy-x, color);
y++;
radiusError += ychange;
ychange += 2;
if ( 2*radiusError + xchange > 0 )
{
x--;
radiusError += xchange;
xchange += 2;
}
}
}
void GLCD_Line(int X1, int Y1,int X2,int Y2)
{
int CurrentX, CurrentY, Xinc, Yinc,
Dx, Dy, TwoDx, TwoDy,
TwoDxAccumulatedError, TwoDyAccumulatedError;
Dx = (X2-X1); // obliczenie sk砤dowej poziomej
Dy = (Y2-Y1); // obliczenie sk砤dowej pionowej
TwoDx = Dx + Dx; // podwojona sk砤dowa pozioma
TwoDy = Dy + Dy; // podwojona sk砤dowa pionowa
CurrentX = X1; // zaczynamy od X1
CurrentY = Y1; // oraz Y1
Xinc = 1; // ustalamy krok zwi阫szania pozycji w poziomie
Yinc = 1; // ustalamy krok zwi阫szania pozycji w pionie
if(Dx < 0) // jesli sk砤dowa pozioma jest ujemna
{
Xinc = -1; // to b阣ziemy si
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -