基本图形绘制函数
本文档介绍了 Wio Terminal 上 TFT LCD 库的一些基本图形绘制函数。您可以使用这些函数来创建自己的绘图功能!
绘制像素点
在 LCD 屏幕上绘制像素点:
drawPixel(int32_t x, int32_t y, uint32_t color);
其中 (x, y)
是像素坐标,color
是像素的颜色。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawPixel(4,7,TFT_BLACK); //在 (4,7) 处绘制一个黑色像素点
}
void loop() {}
绘制直线
在 LCD 屏幕上绘制两点之间的直线:
drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t color);
其中直线从 (x0, y0)
开始绘制到 (x1, y1)
,color
为颜色。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawLine(0,0,160,120,TFT_BLACK); //从 (0,0) 到 (160,120) 绘制一条黑色直线
}
void loop() {}
为了绘制水平或垂直线条,该库还提供了优化的函数:
绘制水平线和垂直线
drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color); //水平线
drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color); //垂直线
其中 (x, y)
是起始坐标,w
是水平线的宽度,h
是垂直线的高度,color
为颜色。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawFastHLine(0,120,320,TFT_BLACK); //从 (0, 120) 开始的黑色水平线
tft.drawFastVLine(160,0,240,TFT_BLACK); // 从 (160, 0) 开始的黑色垂直线
}
void loop() {}
绘制矩形
在 LCD 屏幕上绘制或填充矩形:
drawRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color);
fillRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color);
其中 (x, y)
是起始坐标,w
是宽度,h
是矩形的高度,color
为颜色。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawRect(110,70,100,100,TFT_BLACK); //从 (110, 70) 开始的 100x100 黑色矩形
}
void loop() {}
绘制圆形
在 LCD 屏幕上绘制或填充圆形:
drawCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color);
fillCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color);
其中 (x0, y0)
是圆心,r
是圆的半径,color
为颜色。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawCircle(160,120,50,TFT_BLACK); //圆心在 (160, 120) 的黑色圆形
}
void loop() {}
该库还提供了绘制或填充椭圆的函数:
drawEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color);
fillEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color);
其中 (x0, y0)
是椭圆的中心,rx
是水平半径,ry
是垂直半径,color
为颜色。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawEllipse(160,120,50,100,TFT_BLACK);
//中心在 (160, 120),水平半径为 50,垂直半径为 100 的黑色椭圆
}
void loop() {}
绘制三角形
要在LCD屏幕上绘制或填充三角形:
drawTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint32_t color);
fillTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint32_t color);
其中 (x0, y0)
是第一个坐标,(x1, y1)
是第二个坐标,(x2, y2)
是三角形的第三个坐标,color
是颜色。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawTriangle(160,70,60,170,260,170,TFT_BLACK);
//一个顶点在 (160, 70)、(60, 170) 和 (260, 170) 的三角形
}
void loop() {}
绘制圆角矩形
要在LCD屏幕上绘制或填充圆角矩形:
drawRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t r, uint32_t color);
fillRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t r, uint32_t color);
其中 (x, y)
是起始坐标,w
和 h
是矩形的宽度和高度,r
是圆角半径,color
是颜色。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawRoundRect(110,70,100,100,10,TFT_BLACK);
//一个从 (110, 70) 开始的 100x100 黑色圆角矩形
}
void loop() {}
绘制字符
要在LCD屏幕上绘制单个字符:
drawChar(int32_t x, int32_t y, uint16_t c, uint32_t color, uint32_t bg, uint8_t size)
其中 (x, y)
是起始位置,c
是字符,color
是字符的颜色,bg
是字符的背景颜色,size
是字符的大小比例。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.drawChar(140,120,'A',TFT_BLACK, TFT_RED,2); //从 (140,120) 绘制一个黑色字符 A
tft.drawChar(155,120,'B',TFT_BLACK, TFT_RED,2); //从 (155,120) 绘制一个黑色字符 B
tft.drawChar(170,120,'C',TFT_BLACK, TFT_RED,2); //从 (170,120) 绘制一个黑色字符 C
}
void loop() {}
绘制文本字符串
要在LCD屏幕上绘制字符串:
drawString(const String& string, int32_t poX, int32_t poY);
其中 string
是文本字符串,(poX, poY)
是起始坐标。
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_RED); //红色背景
tft.setTextColor(TFT_BLACK); //设置文本颜色为黑色
tft.setTextSize(1); //设置文本大小
tft.drawString("Hello world!", 0, 0); //从 (0, 0) 打印字符串
tft.setTextSize(2);
tft.drawString("Hello world!", 0, 10);
}
void loop() {}
填充屏幕
要填充或着色整个屏幕:
fillScreen(uint32_t color);
示例代码
#include"TFT_eSPI.h"
TFT_eSPI tft;
void setup() {
tft.begin();
tft.setRotation(3);
}
void loop() {
//循环显示颜色 红-绿-蓝
tft.fillScreen(TFT_RED);
delay(1000);
tft.fillScreen(TFT_GREEN);
delay(1000);
tft.fillScreen(TFT_BLUE);
delay(1000);
}
void loop() {}
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。