天嵌 ARM开发社区

 找回密码
 注册
查看: 3416|回复: 13

TFT_LCD里的函数不理解

  [复制链接]
cwd502 发表于 2010-4-2 21:30:49 | 显示全部楼层 |阅读模式
void Glib_Line(int x1,int y1,int x2,int y2,int color)

这个函数怎么理解 ???感觉好复杂~!~是不是做的太复杂了~
 楼主| cwd502 发表于 2010-4-3 08:46:39 | 显示全部楼层
/**************************************************************************
功能:给定起始结束点划线
参数:(x1,y1)-->起点,(x2,y2)-->结束点,color颜色
返回:无
***************************************************************************/
void Glib_Line(int x1,int y1,int x2,int y2,int color)
{
        int dx,dy,e,temp;
        dx=x2-x1;
        dy=y2-y1;
    if(dx<0){temp=x1;x1=x2;x2=temp;dx=-dx;}
    if(dy<0){temp=y1;y1=y2;y2=temp;dy=-dy;}
       
        /*************************************/
        if(dx>=dy) // dx>=dy
        {
          e=dy-dx/2;
          while(x1<=x2)
          {
                PutPixel(x1,y1,color);
                if(e>0){y1+=1;e-=dx;}       
                  x1+=1;
                  e+=dy;
          }
        }
        else                // dx<dy
        {
          e=dx-dy/2;
          while(y1<=y2)
           {
                 PutPixel(x1,y1,color);
                 if(e>0){x1+=1;e-=dy;}       
                 y1+=1;
                 e+=dx;
           }
        }
}

呵呵!~认真看了下!~原来是个算法!~~改编了一下!~效果一样~!~
回复

使用道具 举报

学海无涯 发表于 2010-11-4 21:46:06 | 显示全部楼层
学习学习了
回复

使用道具 举报

天嵌_support1 发表于 2010-11-5 12:11:04 | 显示全部楼层
:)多多交流。
回复

使用道具 举报

hjw_1314 发表于 2010-11-21 22:15:16 | 显示全部楼层
mark,学习下
回复

使用道具 举报

穿风柳 发表于 2010-11-22 15:26:06 | 显示全部楼层
mark,学习下
回复

使用道具 举报

guoxixiao 发表于 2010-12-23 00:34:18 | 显示全部楼层
ads如果遇到不理解的函数,点击右键—>Go to function definition of Glib_Linux,就进入子函数体。很方便的。
回复

使用道具 举报

zgzhulei 发表于 2010-12-28 22:47:25 | 显示全部楼层
恩  很清析
回复

使用道具 举报

liuyongbo 发表于 2011-1-5 16:41:54 | 显示全部楼层
有力,呵呵
回复

使用道具 举报

xinanjiaoda 发表于 2011-4-24 21:27:41 | 显示全部楼层
学习学习··
回复

使用道具 举报

weiweip327 发表于 2011-8-25 11:54:34 | 显示全部楼层
帮顶,我也在学习中
回复

使用道具 举报

jiangshilong 发表于 2011-8-27 17:28:09 | 显示全部楼层
:lol学习了
回复

使用道具 举报

cjt459 发表于 2011-12-2 20:39:04 | 显示全部楼层
没有看懂!那个
if(dx>=dy) // dx>=dy
        {
          e=dy-dx/2;
          while(x1<=x2)
          {
                PutPixel(x1,y1,color);
                if(e>0){y1+=1;e-=dx;}        
                  x1+=1;
                  e+=dy;
          }
        }
中e又什么作用?
回复

使用道具 举报

:-O:-((⊙o⊙ 发表于 2011-12-14 08:03:57 | 显示全部楼层
楼主能不能讲下这个算法啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-21 07:29 , Processed in 2.036679 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表