?? point.c
字號:
//點
void pointxy(unsigned char x,unsigned char y,unsigned char bitdata)
{ unsigned char a1,p;
Lcd_CurrentX=x;
Lcd_CurrentY=y;
lcdpos();
p=(Lcd_CurrentY%8)&0x7;
a1=lcdrd()&Mask1[p];
if(bitdata>0)
a1|=Mask2[p];
lcdwd(a1);
}
//線
void linexy(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char bitdata)
{ unsigned char i;
unsigned int k;
if(abs(y1-y0)>abs(x1-x0))
{ if(y1>y0)
for(i=y0;i<=y1;i++)
{ if(x1>x0)
{ k=x1-x0;
k*=(i-y0);
k/=y1-y0;
pointxy(x0+k,i,bitdata);
}
else
{ k=x0-x1;
k*=(i-y0);
k/=y1-y0;
pointxy(x0-k,i,bitdata);
}
}
else
for(i=y0;i>=y1;i--)
{ if(x1>x0)
{ k=x1-x0;
k*=(y0-i);
k/=y0-y1;
pointxy(x0+k,i,bitdata);
}
else
{ k=x0-x1;
k*=(y0-i);
k/=y0-y1;
pointxy(x0-k,i,bitdata);
}
}
}
else
{ if(x1>x0)
for(i=x0;i<=x1;i++)
{ if(y1==y0) pointxy(i,y0,bitdata);
else if(y1>y0)
{ k=y1-y0;
k*=(i-x0);
k/=x1-x0;
pointxy(i,y0+k,bitdata);
}
else
{ k=y0-y1;
k*=(i-x0);
k/=x1-x0;
pointxy(i,y0-k,bitdata);
}
}
else
for(i=x0;i>=x1;i--)
{ if(y1==y0) pointxy(i,y0,bitdata);
else if(y1>y0)
{ k=y1-y0;
k*=(x0-i);
k/=x0-x1;
pointxy(i,y0+k,bitdata);
}
else
{ k=y0-y1;
k*=(x0-i);
k/=x0-x1;
pointxy(i,y0-k,bitdata);
}
}
}
}
//矩形
void rect(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char bitdata)
{ linexy(x0,y0,x0,y1,bitdata);
linexy(x0,y0,x1,y0,bitdata);
linexy(x0,y1,x1,y1,bitdata);
linexy(x1,y0,x1,y1,bitdata);
}
void rectfill(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char bitdata)
{
unsigned char i;
for(i=y0;i!=y1;i++)
{
linexy(x0,i,x1,i,bitdata);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -