?? line.c
字號(hào):
void Lcd_Draw_VLine (INT16 usY0, INT16 usY1, INT16 usX0, INT8U ucColor, INT16U usWidth)
{
INT16 usLen;
if (usY1 < usY0)
{
GUISWAP (usY1, usY0);
}
while(usWidth-- > 0)
{
usLen = usY1 - usY0 + 1;
while(usLen-- > 0)
{
LCD_PutPixel(usX0, usY0 + usLen, ucColor);
}
usX0++;
}
} //畫(huà)垂直線(xiàn)
void Lcd_Draw_HLine (INT16 usX0, INT16 usX1, INT16 usY0, INT8U ucColor, INT16U usWidth)
{
INT16 usLen;
if (usX1 < usX0)
{
GUISWAP (usX1, usX0);
}
while(usWidth-- > 0)
{
usLen = usX1 - usX0 + 1;
while(usLen-- > 0)
{
LCD_PutPixel(usX0 + usLen, usY0, ucColor);
}
usY0++;
}
} //畫(huà)水平線(xiàn)
void Lcd_Draw_Line1 (INT16 usX0, INT16 usY0, INT16 usX1, INT16 usY1, INT8U ucColor, INT16U usWidth)
{
INT16 usDx;
INT16 usDy;
INT16 y_sign;
INT16 x_sign;
INT16 decision;
INT16 wCurx, wCury, wNextx, wNexty, wpy, wpx;
if (usY0 == usY1)
{
Lcd_Draw_HLine (usX0, usX1, usY0, ucColor, usWidth);
return;
}
if (usX0 == usX1)
{
Lcd_Draw_VLine (usY0, usY1, usX0, ucColor, usWidth);
return;
}
usDx = abs(usX0 - usX1);
usDy = abs(usY0 - usY1);
if (((usDx >= usDy && (usX0 > usX1)) ||
((usDy > usDx) && (usY0 > usY1))))
{
GUISWAP(usX1, usX0);
GUISWAP(usY1, usY0);
}
y_sign = (usY1 - usY0) / usDy;
x_sign = (usX1 - usX0) / usDx;
if (usDx >= usDy)
{
for (wCurx = usX0, wCury = usY0, wNextx = usX1,
wNexty = usY1, decision = (usDx >> 1);
wCurx <= wNextx; wCurx++, wNextx--, decision += usDy)
{
if (decision >= usDx)
{
decision -= usDx;
wCury += y_sign;
wNexty -= y_sign;
}
for (wpy = wCury - usWidth / 2;
wpy <= wCury + usWidth / 2; wpy++)
{
LCD_PutPixel(wCurx, wpy, ucColor);
}
for (wpy = wNexty - usWidth / 2;
wpy <= wNexty + usWidth / 2; wpy++)
{
LCD_PutPixel(wNextx, wpy, ucColor);
}
}
}
else
{
for (wCurx = usX0, wCury = usY0, wNextx = usX1,
wNexty = usY1, decision = (usDy >> 1);
wCury <= wNexty; wCury++, wNexty--, decision += usDx)
{
if (decision >= usDy)
{
decision -= usDy;
wCurx += x_sign;
wNextx -= x_sign;
}
for (wpx = wCurx - usWidth / 2;
wpx <= wCurx + usWidth / 2; wpx++)
{
LCD_PutPixel(wpx, wCury, ucColor);
}
for (wpx = wNextx - usWidth / 2;
wpx <= wNextx + usWidth / 2; wpx++)
{
LCD_PutPixel(wpx, wNexty, ucColor);
}
}
}
} //畫(huà)線(xiàn)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -