Arduino Adafruit GFX图形库介绍(三)- 图形基本元素


每个库对特定的显示器件有特定的构造函数和初始化函数,对于每种显示器件会在其教材中加以说明,有些会在其头文件中添加说明。下面的教材将不对特定的器件做出说明,而是对所有器件的共性的部分进行说明。

下面介绍的功能主要是作为样板,作为假设我们的显示器已经进行了声明并进行了初始化。查看例子代码来看如何真正使用。例如,如果我们打印print(1234.56),其实际的代码, 或许会看到是screen.print(1234.56)(如果我们将显示定义声明为screen)。

Drawing pixels(points)

画像素。开始我们先介绍基本的像素如何画出来。在单个点用特定的颜色在坐标点X和Y处画这个点。

void drawPixel(uint16_t x, uint16_t y, uint16_t color);

在这里插入图片描述

Drawing lines

画线

可以用两个坐标点画一条线。

void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color)l

在这里插入图片描述

在这里插入图片描述

相对于垂直线和水平线,对此进行了优化。不用进行角度计算。

void drawFastVLine(uint16_t x0, uint16_t y0, uint16_t length, uint16_t color);
void drawFastHLine(uint8_t x0, uint8_t y0, uint8_t length, uint16_t color);

Rectangles

下一步,可以画和填充矩形和方形,画和填充按下面的步骤进行。对于每个X,Y,表示的是矩形左上角。用一个width表示宽度,一个height表示高度。这些计量的单位都是画像本身。drawRect()画矩形的外部,fillRect()用特定的颜色填充整个空间。

void drawRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color);
void fillRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color);

在这里插入图片描述

在这里插入图片描述

要创建一个填充的实体矩形,先用fillRect(), 再用drawRect()来 实现。

画圆圈 Circles

相似的,对圆形,也可以画一个圆圈,也可以填充,每个画圆圈的函数接受一个X,Y对参数,这个参数是圆圈的中心点,一个用像素表示的半径,还有一个颜色值。

void drawCircle(uint16_t x0, uint16_t y0, uint16_r, uint16_t color);
void fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color);

在这里插入图片描述

在这里插入图片描述

Rounded rectangle 圆角矩形

对于边角是圆形的矩形也有填充和画的功能。每个开始一个x和y定义点,一个宽度和高度,定义矩形的宽和高度,再有一个半径定义圆角的圆弧,最后是一个颜色值。

void drawRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t raduis, uint16_t color);
void fillRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t raduis, uint16_t color);

在这里插入图片描述
现在介绍一个额外的技巧,因为画圆的功能总是画与圆形相对应的圆,所以画出来的圆形的直径总是一个偶数。如果要画一个奇数值直径的圆(这会将圆心放在像素的中间。这可以用一个边角是圆弧的矩形来实现。给这个矩形的长度和高度一样,并且是奇数值,半径设置成高度及宽度值的一半。

Triangles 三角形

对于三角形,同样有画和填充的功能,每个函数都需要7个参数,三个X,Y定义三角形的三个顶点,最后是颜色值。

void drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);
void drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);

在这里插入图片描述

Characters and text

有两种不同的画字符串的方法,第一个方法是单独的一个字符的画法,可以是一个字符的位置信息,再就是颜色值。只有一种字体(节省空间),是5x8个像素。可以有作为选项的参数传递给系统,将用比例系数降字体放大(size=2,使字体占有10x16的像素。一个字体可以减少程序的大小。

void drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg, uint8_t size);

在这里插入图片描述

字符是非常灵活的,但也是稍微有些比较难操作的。与其用一个过场来控制文本的大小,颜色及位置还不如用一些独立的功能块来完成,然后用打印print()功能,这使得过程更简单并且可与你像Serial.print()功能一样来使用。

void setCursor(uint16_t x0, uint16_6 y0);
void setTextColor(uint16_t color);
void setTextColor(uint16_t color, uint16_t backgroundcolor);
void setTextSize(uint8_t size);
void setTextWrap(boolean w);

开始用setCursor(x, y)可以将光标设置在需要显示的字符的左上角处。在初始化时,可以用set(0,0)来设置到屏幕的左上角处。然后用setTextColor(color)来设置字符的颜色。作为默认值,是白色。字符通常开始绘制清除,字符的开始部分会显示原始的背景内容,但如果想显示单词的背景颜色,可以在设置setTextColor()的第二个参数来设置。最后,可以用setTextSize(size)来定义整数的比例倍数,可以设置为1,2或者3. 再大或者不行了,因为我们只有一个单一的字体,以节省空间。

在这里插入图片描述

在完成了上面的设置后,我们可以用print()和println() - 就像对 Serial一样的打印。例如,要打印一个字符串,可以使用print(“Hello world”), 这是我们上面的第一行显示的内容。也可以用print()来打印数字和变量。第二行是print(1234.56), 最后一行是print(0xDEADBEEF, HEX).

默认情况下,长的字符串会自动换行,可以用seTextWrap(false). 这时字符串不会换行,会消失。这对滚动选框有用。可以用setTextWrap(true)使超长的字符串自动换行。

请查看“Using Fonts“页获取更对关于字符的特性。

Bitmaps 画画

可以用来绘制小单色的图,制作小的动画或者是图标。

void drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w, int16_t h, uint16_t color);

这会在一部分显示区域中发出连续的位信息。这里1代表是像素被设置成规定的颜色,0就是不设置像素的颜色。x,y是位图左上角,w和h是宽度和高度。

位图的数据要存放在PROGMEM的部分,这里有高级的功能可以让开始使用的编程者使用。可以参见Arduino的PROGMEM的使用方法。

还用一个webtool可以用来产生位图的memorymap。

清除或者是填充屏幕 Clearing or filling the screen

用fillScreen()功能块来设置整个显示,可以设置整个显示的颜色。并清除屏幕上的所有内容。

void fillScreen(uint16_t color);
  • 12
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 您可以在以下网址下载adafruit_gfx.hArduino版本: https://github.com/adafruit/Adafruit-GFX-Library 下载后,将文件解压缩并将其放置在Arduino IDE的文件夹中。然后,您可以在Arduino IDE中使用该来编写图形用户界面和其他图形应用程序。 ### 回答2: adafruit_gfx.h是一个用于Arduino开发板的,它是Adafruit公司制作的一个开源。该包含了许多通用图形函数,可用于各种Arduino开发项目。它使用了一些C++的技术,例如面向对象编程和类继承。 下载Adafruit_gfx.h的过程非常简单。首先,您需要在您的计算机上安装Arduino IDE。安装完成之后,打开IDE并单击“文件”菜单,选择“示例”下的“Adafruit_GFX_Library”,其中包含了许多示例程序和代码。如果您想使用该,您可以单击“管理器”以查找可用的,然后搜索“Adafruit_GFX_Library”并安装。 安装成功后,您可以打开IDE并新建一个项目,然后选择“包含”并选择“Adafruit_GFX_Library”。您可以使用该的函数和类来创建各种图形,例如线条、文本、矩形和圆形等。此外,该还支持许多不同的屏幕和显示器类型,包括液晶屏、OLED和彩色TFT显示器等。 总之,使用Adafruit_gfx.h能够帮助您轻松地在Arduino开发平台上添加图形和可视化元素,提高产品的交互体验和用户友好性。 ### 回答3: adafruit_gfx.h 是Adafruit GFX Library的一个头文件,它是一个用于在Arduino开发板上显示图形。它提供了一系列的函数和工具,可以帮助我们在显示器上绘制简单的图形、文本、数值等。 首先,我们需要在Adafruit官网上下载最新版的Adafruit GFX Library。下载后,将其解压到Arduino IDE的libraries文件夹中。然后在Arduino IDE的"Sketch>Include Library"菜单中可以找到adafruit_gfx.h并导入。 接下来,我们需要了解一些常用的函数和变量。首先是gfx.begin()函数,它用于初始化显示器。在函数中,我们需要指定显示器的分辨率、字体和背景颜色等参数。然后,可以使用gfx.clear()函数来清除屏幕。 接下来,我们可以使用gfx.drawPixel(x, y, color)函数来在指定坐标(x, y)处绘制像素点,其中color表示像素点的颜色。如果要绘制连线,可以使用gfx.drawLine(x0, y0, x1, y1, color)函数,它可以绘制从(x0, y0)到(x1, y1)的线段。 如果需要在屏幕上绘制文本,可以使用gfx.setCursor(x, y)函数设置文本的起始位置,然后使用gfx.setTextColor()函数来设置文本的颜色。最后,可以使用gfx.print()函数在屏幕上打印出文字。 绘制完图形之后,调用gfx.display()函数来将所有绘制的内容显示在屏幕上。如果需要支持全彩显示,可以使用gfx.setPixelColor()函数来设置单个像素点的颜色。 以上是adafruit_gfx.h基本使用方法介绍,通过学习和实际使用,我们可以更熟练地开发Arduino项目,并在显示器上实现更加丰富的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值