arduino u8g2库画图函数

画图函数

[繪圖相關函式]
u8g2 繪圖座標原點在左上角,向右是 X 軸,向下是 Y 軸。以下說明各繪圖函式:

⬝ u8g2.drawBox(x,y, w, h) 畫一個空心四方形
⬝ u8g2.drawFrame(x, y, w, h) 畫一個實心四方形
說明:畫一個四方形。x,y是方框的左上角座標,w,h是寬和高,如果方框比顯示幕大,則多出部分不繪畫,也就是說不耗記憶體和出現錯圖。

⬝ u8g2.drawRBox(x,y, w, h, r) 繪製圓角實心方形
⬝ u8g2.drawRFrame(x,y, w, h, r) 繪製圓角空心方形
說明:畫一個四方圓角形。x,y是方框的左上角座標,w,h是寬和高,r是四個角的圓角半徑(r需小於 x/2 或 y/2)。

⬝ u8g2.drawCircle(x, y ,rad,opt) 畫空心圓
⬝ u8g2.drawDisc(x, y ,rad,opt) 畫實心圓
說明:畫一個圓,可選四個方向的半圓,X,Y是圓心的位置,rad是半徑。opt是選項,可以是以下各項值:
U8G2_DRAW_UPPER_RIGHT → 左上角弧度
U8G2_DRAW_UPPER_LEFT → 右上角弧度
U8G2_DRAW_LOWER_LEFT → 左下角幅度
U8G2_DRAW_LOWER_RIGHT → 右下角幅度
U8G2_DRAW_ALL → 全圓

⬝ u8g2.drawEllipse(x, y, rx, ry, opt) 畫一個空心橢圓形
⬝ u8g2.drawFilledEllipse(x, y, rx, ry, opt) 畫一個實心橢圓形
說明:畫一個空心橢圓形,和畫圓是非常相似的用法。x,y是橢圓形中心座標、rx是橢圓形水平線的半徑D,ry是垂直線的半徑、opt是選項,可以是以下各項值:
U8G2_DRAW_UPPER_RIGHT → 左上角弧度
U8G2_DRAW_UPPER_LEFT → 右上角弧度
U8G2_DRAW_LOWER_LEFT → 左下角幅度
U8G2_DRAW_LOWER_RIGHT → 右下角幅度
U8G2_DRAW_ALL → 全圓

⬝ u8g2.drawHLine(x, y ,w)
說明:繪製一條水平線。x,y是直線起始位置,w是長度。

⬝ u8g2.drawVLine(x ,y ,h)
說明:繪製一條垂直線。x,y是直線起始位置,h是高度。

⬝ u8g2.drawLine(x0, y0, x1, y1)
說明:畫一條平面直線,x0,y0是直線起始位置,x1,y1是直線終止位置。

⬝ u8g2.drawGlyph(x, y, 字集代碼)
說明:在x,y座標繪製代碼的符號,U8g2支持16位元的 unicode 字集,這個函式只能繪製存在於所使用的字體字集中的 unicode值,需要先設置字體及顏色。

⬝ u8g.drawTriangle(x0,y0, x1,y1, x2,y2)
說明:繪製實體三角形,x0,y0:第一個角座標,x1,y1:第二個角座標,x2,y2:第三個角的座標。

⬝ u8g2.firstPage()/nextPage()
說明:繪製命令。firstPage()方法會把當前頁碼位置變成0。修改內容放置於firstPage和nextPage之間,每次重新更新所有內容。這個方法使用的記憶體空間比sendBuffer少。

⬝ u8g2.sendBuffer()
說明:繪製緩衝區的內容,sendBuffer佔用的記體較大。

⬝ u8g2.setDrawColor(color)
說明:設置繪製顏色

⬝ u8g2.drawXBM(x, y, w, h, bitmap)/drawXBMP(x, y, w, h, bitmap)
說明:繪製圖像。在x,y座標,顯示寬和高的bitmap圖片。

⬝ u8g2.setBitmapMode(is_transparent)
說明:設置繪圖模式。0 繪製背景颜色(不透明),此為預設值。1:不繪製背景颜色(透明)。

⬝ drawPixel(x,y)
說明:畫一個像素點。x,y是畫點的座標位置。

 

 

 

 

 

 

drawXBM(x,y,w,h,const uint8_t *bitmap);    

drawXBMP(x,y,w,h,const uint8_t *bitmap);     // 该函数支持PROGMEM,也是他们的区别

                                               // PROGMEM是将它修饰的变量放到Flash中,而不是放到RAM

坐标(x,y),图片宽w和高h,uint8_t *bitmap放入你要显示图片的数组名。

表示图片的数组可以用PCtoLCD2002生成。该软件的使用不做讲解,自行了解。需要注意的是图片的像素大小必须小于你屏幕能显示的大小,图片格式选择BMP,且是单色位图。

 

还可以使用这个工具:奈何col的工具集,生成的数组要是显示有问题你就切换大小端。

另一个工具:Easy U8g2 font generate tools: 这是一个易于操作的U8g2字体生成工具,使用者只需要输入需要转换的文本,选择字体文件以及设置字体大小,该工具会自动对文本进行去重、生成map字体映射文件、生成bdf字库并最终导出C语言字库代码

使用这个工具的时候,有一个要你给他字符风格的,就是“输入ttf格式字体路径”。你可以在你电脑C盘windows下找到Fonts,里面全是各种风格。你用楷体就把他复制下来放桌面,改个名字。然后命名行输入:Desktop:\STKAITI.TTF。Desktop是存放在桌面的意思,你要是放D盘就改成D,其实也就是放入存放路径。数组的保存内径工具生成后下面会告诉你。然后你把找到该文件,打开来,内容全部复制放入u8g2/scr/clib/u8g2_fonts.c文件里,找个空地方复制就行。然后找到u8g2.h,在最后面写自己字体的声明,照着上面的模板修改。完了之后使用的话,要用u8g2.setFont();括号里放入你字体的名字。你可能问都自带中文字库了,为啥我还要用这些工具,因为字最大也就16像素。

u8g2.drawPixel(x,y);         // 绘制像素点

u8g2.drawHLine(x,y,w);        // 绘制水平线,w表示长度

u8g2.drawVLine(x,y,h);        //绘制竖直线,h表高度

u8g2.drawLine(x,y,x1,y1);         // 绘制直线,(x,y)端点坐标,(x1,y1)另一端点坐标

u8g2.drawBox(x,y,w,h);            // 画实心矩形

u8g2.drawFrame(x,y,w,h);        // 空心矩形

u8g2.drawFrame(x,y,rad,opt);   // 画空心圆。rad半径;opt选择圆形画多少

// opt的参数选择有:U8G2_DRAW_ALL (整个圆)、U8G2_DRAW_UPPER_RIGHT右上圆弧、U8G2_DRAW_UPPER_LEFT左上圆弧、U8G2_DRAW_LOWER_RIGHT右下圆弧、U8G2_DRAW_LOWER_LEFT左下圆弧

u8g2.drawDisc(x,y,rad,opt);        // 画实心圆

u8g2.drawEillipse(x,y,rx,ry,opt);     // 画空心椭圆,rx:椭圆中心在x轴方向到椭圆的距离;ry同理

u8g2.drawFilledEillipse(x,y,rx,ry,opt);        // opt参数和之前的一样

u8g2.drawRBox(x,y,w,h,r);           // 画圆角实心方形,r为圆角半径

u8g2.drawRFrame(x,y,w,h,r);       // 画圆角空心方形

u8g2.drawTriangle(x0,y0,x1,y1,x2,y2)        //画实心三角形,三个顶点坐标

 

posted @ 2025-01-14 12:29  mcwhirr  阅读(857)  评论(0)    收藏  举报