天嵌 ARM开发社区

 找回密码
 注册
查看: 3660|回复: 5

LCD裸机画线程序解释,

[复制链接]
wang12zhedi 发表于 2012-10-10 09:52:57 | 显示全部楼层 |阅读模式
/**************************************************************
LCD屏幕显示垂直翻转
// LCD display is flipped vertically
// But, think the algorithm by mathematics point.
//   3I2
//   4 I 1
//  --+--   <-8 octants  mathematical cordinate
//   5 I 8
//   6I7
**************************************************************/
void Glib_Line(int x1,int y1,int x2,int y2,int color)
{
        int dx,dy,e;
        dx=x2-x1;
        dy=y2-y1;
   
        if(dx>=0)
        {
                if(dy >= 0) // dy>=0  //dx dy 都大于零,可以确定直线斜率大于零
                {
                        if(dx>=dy) // 1/8 octant  斜率小于1
                        {
                                e=dy-dx/2;
                                while(x1<=x2)
                                {
                                        PutPixel(x1,y1,color);
                                        if(e>0)
                                        {y1+=1;e-=dx;}       
                                        x1+=1;
                                        e+=dy;
                                }
                        }
这是TQ2440开发板LCD裸机程序画直线程序的一部分,其中e=dy-dx/2;
怎么去理解呢,请大神?
还有无看了三个常用算法:
数值微分法(DDA)
中点画线法
Bresenham算法。那天嵌用的是Bresenham算法吗,不太像
embedsky_lhh 发表于 2012-10-10 18:31:11 | 显示全部楼层
从模型上看用的是Bresenham算法,楼主认为此代码与算法哪里是矛盾的?
 楼主| wang12zhedi 发表于 2012-10-10 18:36:17 | 显示全部楼层
不是矛盾,而是   e=dy-dx/2;这句比理解,感觉不该是dx,该是dy,但是dy的话就e=0啦
 楼主| wang12zhedi 发表于 2012-10-10 18:37:02 | 显示全部楼层
本帖最后由 wang12zhedi 于 2012-10-10 18:37 编辑
embedsky_lhh 发表于 2012-10-10 18:31
从模型上看用的是Bresenham算法,楼主认为此代码与算法哪里是矛盾的?


不是矛盾,而是   e=dy-dx/2;这句不理解,感觉不该是dx,该是dy,但是dy的话就e=0啦
embedsky_lhh 发表于 2012-10-13 09:52:19 | 显示全部楼层
wang12zhedi 发表于 2012-10-10 18:37
不是矛盾,而是   e=dy-dx/2;这句不理解,感觉不该是dx,该是dy,但是dy的话就e=0啦

记得以前老师讲这的时候好像是e=2dy-dx,工作了之后没用过,也不确定了,连模型建立过程都不清晰了,你查下相关的资料应该就可以理解了,是dy也是可以的,只是换个空间而已,这没什么关系,相当于旋转90度之后再按你的思维建模,就是dy了。
rickyzw 发表于 2012-12-16 12:09:39 | 显示全部楼层
楼主你好!你有TQ2440裸机画线程序吗?能发我一份吗?我的QQ邮箱:707200399@qq.com!先谢谢啦!{:1_1:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-5 11:57 , Processed in 1.046875 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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