这一讲我们来讲一下2D绘图的相关内容
主讲内容有以下几个方面:
- 基本绘图
- Alpha混合
- 多边形和圆相关绘图
- 绘制二维码
- 2D绘图综合实验
1.基本绘图
emWin包含完整的2D图形库,并提供了用于绘制点、线、面、多边形等图形的各种API供用户使用,它们基于快速高效的算法。
GUI_LS_SOLLD 是实心的线条
GUI_LS_DASH 表示虚线样式的线条
GUI_LS_DOT 有点组成的线条
GUI_LS_DASHDOT 按虚线和圆点交替的样式绘制线条
GUI_LS_DASHDOTDOT 按虚线和双点交替的样式绘制线条
GUI_DrawLine()
在当前窗口中绘制从某个指定起点到某个终点之间的线(绝对坐标)。
这里起点X0坐标必须小于X1坐标。
设置画笔大小。
如果用了这个GUI_SetPenSize()设置画笔大小。(>1)
那么GUI_SetLineStyle()这个函数就不起作用了。
x0,y0,确定左上角坐标。
x1,y1,确定右下角坐标。
带有Draw单词的都是绘制一个矩形框,只是一个线框的图形。
这是填充矩形区域。
/* 绘制圆角矩形 */
25 GUI_SetColor(GUI_ORANGE);
26 GUI_DrawRoundedFrame(210, 110, 290, 190, 20, 8);
27 GUI_FillRoundedRect(310, 110, 390, 190, 20);
一共有六个参数。
r,w.
r是圆角的半径。
w框的绘制宽度。
绘制圆角矩形。
/* 绘制渐变色圆角矩形 */
29 GUI_DrawGradientRoundedV(410, 10, 490, 190, 20, GUI_LIGHTMAGENTA,
GUI_LIGHTCYAN);
Color0是最顶上的颜色
Color1是最下面的颜色
图形如上。
代码总体如下。
void MainTask(void) {
GUI_Init();/*初始化动态内存*/
/* 设置背景色 */
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
/* 绘制破折号直线 */
GUI_SetColor(GUI_BLACK);
GUI_SetLineStyle(GUI_LS_DASH);
GUI_DrawLine(70, 10, 170, 110);
/* 绘制点直线 */
GUI_SetLineStyle(GUI_LS_DOT);