int *plcd = NULL;
/*
******************************************************
* (x,y) color
******************************************************
*/
void lcd_draw_point(int x, int y, int color)
{
*(plcd + x + 800*y) = color;
}
/*
******************************************************
* LCD
******************************************************
*/
void lcd_WR_color()
{
// lcd
// 0,0 800*480
int x,y;
for (y = 0; y < 480; y++)
{
for (x = 0; x < 800; x++)
lcd_draw_point(x, y, 0xffffffff);
}
}
/*
*******************************************************
* (X0,Y0) width,
* hight, color
******************************************************
*/
void lcd_draw_rectangle(int x,int y,int w,int h,int color)
{
int i,j;
for (i= y; i < y+h; i++) //
{
for (j = x; j
lcd_draw_point(j, i, color);
}
}
/*
*******************************************************
* (X0,Y0) r
******************************************************
*/
void lcd_draw_circle(int x,int y,int r,int color)
{
int i,j;
int s;
for(i=0;i<480;i++)
{
s=0;
for(j=0;j<800;j++)
{
s=(y-i)*(y-i)+(x-j)*(x-j);
if(s>=((r-1)*(r-1))&&s<=((r+1)*(r+1)))
lcd_draw_point(j, i, color);
}
}
}
/*
*******************************************************
* (X0,Y0) r
******************************************************
*/
void lcd_draw_disc(int x,int y,int r,int color)
{
int i,j;
for(i=0;i<480;i++)
{
for(j=0;j<800;j++)
{
if((j-x)*(j-x)+(i-y)*(i-y)<=r*r)
lcd_draw_point(i, j, color);
}
}
}
/*
*******************************************************
*
*******************************************************
*/
int main(int argc, char *argv[])
{
// LCD
int fd;
fd = open("/dev/fb0", O_RDWR);
//if (fd == -1)
if (-1 == fd)
{
perror("open lcd error");
return 0;
}
//
// LCD ,plcd /// => plcd lcd 0
// plcd lcd
plcd = mmap(NULL, 800*480*4,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0);
//
int color[480][800];
//lcd
lcd_WR_color();
//1、 lcd 50,50 50*50
lcd_draw_rectangle(50,50,50,50,0x00fef0ef);
//2、 lcd 200,200 , 80
lcd_draw_disc(200,200,80,0xadbc00ff);
//3、 lcd 400,200 , 80
lcd_draw_circle(400,400,80,0);
close(fd);
return 0;
}