找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9098|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

LCD屏幕畫點畫線畫圓清屏函數(shù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:272485 發(fā)表于 2019-10-21 19:38 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
/******************* 畫點函數(shù) **************************

參數(shù):
Xpos:X軸坐標(biāo)
Ypos:Y軸坐標(biāo)
Color:像素點顏色
********************************************************/
void LCD_Draw_Point(u16 Xpos, u16 Ypos, u16 Color)
{
//int i;
LCD_ILI9486_CMD(0x2A);                      //發(fā)送0x2A命令,設(shè)置X軸坐標(biāo)
LCD_ILI9486_Parameter((Xpos -4& 0xff00) >> 8);  //發(fā)送X軸起始坐標(biāo)的高8位
LCD_ILI9486_Parameter((Xpos -4& 0x00ff));       //發(fā)送X軸起始坐標(biāo)的低8位
LCD_ILI9486_Parameter((Xpos +4& 0xff00) >> 8);  //發(fā)送X軸結(jié)束坐標(biāo)的高8位
LCD_ILI9486_Parameter((Xpos +4& 0x00ff));       //發(fā)送X軸結(jié)束坐標(biāo)的低8位

LCD_ILI9486_CMD(0x2B);                      //發(fā)送0x2B命令,設(shè)置Y軸坐標(biāo)
LCD_ILI9486_Parameter((Ypos -4& 0xff00) >> 8);  //發(fā)送Y軸起始坐標(biāo)的高8位
LCD_ILI9486_Parameter((Ypos -4& 0x00ff));       //發(fā)送Y軸起始坐標(biāo)的低8位
LCD_ILI9486_Parameter((Ypos +4& 0xff00) >> 8);  //發(fā)送Y軸結(jié)束坐標(biāo)的高8位
LCD_ILI9486_Parameter((Ypos +4& 0x00ff));       //發(fā)送Y軸結(jié)束坐標(biāo)的低8位

LCD_ILI9486_CMD(0x2C);//發(fā)送像素點的顏色信息
// for(i=0;i<25;i++)
LCD_ILI9486_Parameter(Color);//顏色漸變
}
/*************
功能:LCD畫任意角度函數(shù)
參數(shù):x1,y1:起始點坐標(biāo)(x取值范圍:0~319,y:0~479)
   x2,y2:終點坐標(biāo)
   color:線顏色(除白色0xFFFF)
**************/
void draw_line(u16 x1,u16 x2,u16 y1,u16 y2,u16 color)
{
//循環(huán)需要變量,斜率需要保存
u16 i,k;

//斜率是否等于0
if(x1==x2)//斜率等于0
{
  if(y1<y2)
  for(i=y1;i<=y2;i++){LCD_Draw_Point(x1, i, color);}
else
  for(i=y2;i<=y1;i++){LCD_Draw_Point(x1, i, color);}
}
else//斜率不等0
{
  if(y1==y2)//斜率不等于0且不存在
  {
   if(x1<x2)
    for(i=x1;i<=x2;i++){LCD_Draw_Point(i, y1, color);}
  else
   for(i=x2;i<=x1;i++){LCD_Draw_Point(i, y1, color);}
  }
  else//斜率不等于0且斜率存在
  {
   k=(double)(y2-y1)/(x2-x1);
   if(x1<x2)
    for(i=0;x1+i<=x2;i++){LCD_Draw_Point(x1+i, y1+i*k, color);}
   else
    for(i=0;x2+i<=x1;i++){LCD_Draw_Point(x2+i, y2+i*k, color);}
  }
  
}
   
}
/***********
函數(shù)功能:清屏函數(shù)
參數(shù):x1,y1:起始點坐標(biāo),y1,y2:終點坐標(biāo),color清屏顏色
返回值:無
***********/
void QP(u16 x1,u16 y1,u16 x2,u16 y2,u16 color)
{
int i;
LCD_ILI9486_CMD(0x2A);                      //發(fā)送0x2A命令,設(shè)置X軸坐標(biāo)
LCD_ILI9486_Parameter((x1& 0xff00) >> 8);  //發(fā)送X軸起始坐標(biāo)的高8位
LCD_ILI9486_Parameter((x1& 0x00ff));       //發(fā)送X軸起始坐標(biāo)的低8位
LCD_ILI9486_Parameter((x2& 0xff00) >> 8);  //發(fā)送X軸結(jié)束坐標(biāo)的高8位
LCD_ILI9486_Parameter((x2& 0x00ff));       //發(fā)送X軸結(jié)束坐標(biāo)的低8位

LCD_ILI9486_CMD(0x2B);                      //發(fā)送0x2B命令,設(shè)置Y軸坐標(biāo)
LCD_ILI9486_Parameter((y1& 0xff00) >> 8);  //發(fā)送Y軸起始坐標(biāo)的高8位
LCD_ILI9486_Parameter((y1& 0x00ff));       //發(fā)送Y軸起始坐標(biāo)的低8位
LCD_ILI9486_Parameter((y2& 0xff00) >> 8);  //發(fā)送Y軸結(jié)束坐標(biāo)的高8位
LCD_ILI9486_Parameter((y2& 0x00ff));       //發(fā)送Y軸結(jié)束坐標(biāo)的低8位

LCD_ILI9486_CMD(0x2C);//發(fā)送像素點的顏色信息
for(i=0;i<(x2-x1)*(y2-y1);i++)
LCD_ILI9486_Parameter(color);
}
/***********
函數(shù)功能:畫圓形
參數(shù):x1,y1:圓心,r:半徑
返回值:無
u=2*3.14*(i/360)
***********/
//極坐標(biāo)系
void YUAN(u16 i, u16 j, u16 r, u16 color)
{
  
double n,x,y,m;
if(r == 0)
{
  LCD_Draw_Point(i,j,color);
}
else
{
  for( m=0; m<36000; m=m+1)
  {
   n=2*3.1415926*(m/36000.0);
   x = r*cos(n)+i;
   y = r*sin(n)+j;
   LCD_Draw_Point( x, y, color);
  }
}

}
//直角坐標(biāo)系
void yuan(u16 a,u16 b,u16 r,u16 color)
{
u16 i,x,y;
//以x(i)為自變量
for(i=a-r;i<=a+r;i++)
{
  y=sqrt(r*r-(i-a)*(i-a));
  LCD_Draw_Point(i,b+y,color);
  LCD_Draw_Point(i,b-y,color);
}
for(i=b-r;i<=b+r;i++)
{
  x=sqrt(r*r-(i-b)*(i-b));
  LCD_Draw_Point(a+x,i,color);
  LCD_Draw_Point(a-x,i,color);
}
  
}




IMG_1694.JPG (3.37 MB, 下載次數(shù): 95)

IMG_1694.JPG

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表