TFTLCD 开发记录 -- 6、绘制图形

使用DMA2D加速显示数据传输,首先要编写DMA2D的驱动函数接口如下:
利用此DMA2D传输函数,实现清屏函数:
使用到的宏定义在TFTLCD.h头文件中可以找到
TFTLCD屏幕上图形的绘制,包括画点,画直线、画斜线、画矩形、画圆,画波形等等算法都是基于画点函数来做的,所以先实现画点函数。具体原理就是对目标点坐标进行上色操作,具体代码:
画线算法使用Bresenham算法,Bresenham提出了一种精确而有效的光栅线生成算法,该算法仅仅使用了增量整数计算,大大提高了画线效率,因此被广泛应用。

图中每个方格就是一个像素点,显然,每一个像素点只有显示颜色可以控制,不能控制显示像素点的一部分,所以红色的真实直线不可能表示出来。在计算机中将真实的直线(红色)离散化,用图中黑色像素点近似显示,算法实现如下:
画圆和画矩形函数都比较简单,直接贴上代码
视频演示效果请转至(开源)TFTLCD 开发记录 -- 绘制图形
视频下方简介有完整的工程代码开源github上,有需要的小伙伴请自行下载在