原子LCD例程中画线函数的优化"/>
正点原子LCD例程中画线函数的优化
最近做一个项目用OLED屏做显示,屏幕显示内容比较简单,就直接移植正点原子的LCD屏幕里的绘图函数来做了,在测试画线函数时,发现斜线的最后一行只有一个小点。效果如下图:
经过测试,发现这个小点确实是画线中传参的第二个点位置,并不是程序BUG。由于屏幕的分辨率很低,所以看起就很突兀。而且这个现象并不是个例,只要是斜线都会出现这种情况,极端一些的像一条线如果Y方向只有两个像素时,会出现下图的情况:
这种斜线正常情况应该是在中间换行,于是检查对画线函数并做了修改,修改后的画线函数如下:
void lcd_drawline(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2)
{u16 t; int xerr = 0, yerr = 0, delta_x, delta_y, distance; int incx, incy, uRow, uCol; delta_x = x2 - x1; /* 计算坐标增量 */delta_y = y2 - y1; uRow = x1; uCol = y1; if(delta_x > 0) /* 设置单步方向 */ incx = 1;else
更多推荐
正点原子LCD例程中画线函数的优化
发布评论