Grafiken zeichnen
Was dieses Beispiel zeigt
Zeichnen Sie gefüllte und umrandete Rechtecke, Kreise und Dreiecke, Text und ein Bitmap-Logo in mehreren Farben und zeigen Sie sie mit einem einzigen Refresh an. Das Logo stammt aus logoImg.h, die im Beispielordner neben dem Sketch liegt.
Beispielcode
#include "Inkplate.h"
#include "logoImg.h"
Inkplate display;
void setup()
{
display.begin();
display.clearDisplay();
display.display();
display.fillScreen(INKPLATE_WHITE);
// Draw many rectangles
display.fillRect(0, 0, 50, 50, INKPLATE_BLACK);
display.fillRect(0, 50, 50, 50, INKPLATE_WHITE);
display.fillRect(0, 100, 50, 50, INKPLATE_GREEN-1);
display.fillRect(0, 150, 50, 50, INKPLATE_BLUE-1);
display.fillRect(0, 200, 50, 50, INKPLATE_RED);
display.fillRect(0, 250, 50, 50, INKPLATE_YELLOW);
display.drawRect(55, 0, 50, 50, INKPLATE_BLACK);
display.drawRect(55, 50, 50, 50, INKPLATE_WHITE);
display.drawRect(55, 100, 50, 50, INKPLATE_GREEN-1);
display.drawRect(55, 150, 50, 50, INKPLATE_BLUE-1);
display.drawRect(55, 200, 50, 50, INKPLATE_RED);
display.drawRect(55, 250, 50, 50, INKPLATE_YELLOW);
// Draw many circles
display.fillCircle(135, 25, 24, INKPLATE_BLACK);
display.fillCircle(135, 75, 24, INKPLATE_WHITE);
display.fillCircle(135, 125, 24, INKPLATE_GREEN-1);
display.fillCircle(135, 175, 24, INKPLATE_BLUE-1);
display.fillCircle(135, 225, 24, INKPLATE_RED);
display.fillCircle(135, 275, 24, INKPLATE_YELLOW);
display.drawCircle(190, 25, 24, INKPLATE_BLACK);
display.drawCircle(190, 75, 24, INKPLATE_WHITE);
display.drawCircle(190, 125, 24, INKPLATE_GREEN-1);
display.drawCircle(190, 175, 24, INKPLATE_BLUE-1);
display.drawCircle(190, 225, 24, INKPLATE_RED);
display.drawCircle(190, 275, 24, INKPLATE_YELLOW);;
// Draw many triangles
display.fillTriangle(210, 50, 260, 50, 235, 0, INKPLATE_BLACK);
display.fillTriangle(210, 100, 260, 100, 235, 50, INKPLATE_WHITE);
display.fillTriangle(210, 150, 260, 150, 235, 100, INKPLATE_GREEN-1);
display.fillTriangle(210, 200, 260, 200, 235, 150, INKPLATE_BLUE-1);
display.fillTriangle(210, 250, 260, 250, 235, 200, INKPLATE_RED);
display.fillTriangle(210, 300, 260, 300, 235, 250, INKPLATE_YELLOW);
display.drawTriangle(210, 50, 260, 50, 235, 0, INKPLATE_BLACK);
display.drawTriangle(210, 100, 260, 100, 235, 50, INKPLATE_WHITE);
display.drawTriangle(210, 150, 260, 150, 235, 100, INKPLATE_GREEN-1);
display.drawTriangle(210, 200, 260, 200, 235, 150, INKPLATE_BLUE-1);
display.drawTriangle(210, 250, 260, 250, 235, 200, INKPLATE_RED);
display.drawTriangle(210, 300, 260, 300, 235, 250, INKPLATE_YELLOW);
// Show some pretty text
display.setTextColor(INKPLATE_BLACK);
display.setCursor(265, 0);
display.setTextSize(1);
display.print("Welcome to Inkplate 7SPECTRA!");
display.setTextColor(INKPLATE_WHITE);
display.setCursor(265, 50);
display.setTextSize(1);
display.print("Welcome to Inkplate 7SPECTRA!");
display.setTextColor(INKPLATE_GREEN-1);
display.setCursor(265, 100);
display.setTextSize(1);
display.print("Welcome to Inkplate 7SPECTRA!");
display.setTextColor(INKPLATE_BLUE-1);
display.setCursor(265, 150);
display.setTextSize(1);
display.print("Welcome to Inkplate 7SPECTRA!");
display.setTextColor(INKPLATE_RED);
display.setCursor(265, 200);
display.setTextSize(1);
display.print("Welcome to Inkplate 7SPECTRA!");
display.setTextColor(INKPLATE_YELLOW);
display.setCursor(265, 250);
display.setTextSize(1);
display.print("Welcome to Inkplate 7SPECTRA!");
// Draw logo
display.drawBitmap(0, 350, logo, logo_w, logo_h, INKPLATE_BLACK);
display.drawBitmap(100, 350, logo, logo_w, logo_h, INKPLATE_GREEN-1);
display.drawBitmap(200, 350, logo, logo_w, logo_h, INKPLATE_BLUE-1);
display.drawBitmap(300, 350, logo, logo_w, logo_h, INKPLATE_RED);
display.drawBitmap(400, 350, logo, logo_w, logo_h, INKPLATE_YELLOW);
display.display();
}
void loop()
{
}
Der Sketch übergibt INKPLATE_GREEN-1 und INKPLATE_BLUE-1 als Farben. Die Farbkonstanten sind Indizes von 0 bis 5, daher ist INKPLATE_GREEN-1 der Index 4 (Blau) und INKPLATE_BLUE-1 der Index 3 (Rot). Verwenden Sie die Konstanten allein, wenn Sie Grün und Blau haben möchten.
Verwendete Funktionen
Inkplate()returns NoneErstellt das Inkplate-Objekt. Inkplate 7SPECTRA hat nur einen einzigen Sechs-Farben-Modus, daher erwartet der Konstruktor kein Modus-Argument.
ReturnsKonstruktor; kein Rückgabewert.
display.begin()returns voidInitialisiert die Bibliothek, die Peripherie und den Framebuffer. Rufen Sie sie einmal in setup() auf; spätere Aufrufe werden ignoriert.
ReturnsNichts.
display.clearDisplay()returns voidFüllt den Framebuffer mit Weiß. Das Panel wird dadurch nicht verändert; rufen Sie dafür anschließend display() auf.
ReturnsNichts.
display.display(bool _leaveOn = 0)returns voidSendet den gesamten Framebuffer an das Panel und aktualisiert es. Der Sketch ruft sie einmal am Anfang auf, um das Panel zu löschen, und einmal am Ende, um die Formen anzuzeigen.
ReturnsNichts.
display.fillScreen(uint16_t color)returns voidFüllt den gesamten Framebuffer mit einer Farbe.
ReturnsNichts.
display.fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)returns voidZeichnet ein gefülltes Rechteck mit der oberen linken Ecke bei (x, y).
ReturnsNichts.
display.drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)returns voidZeichnet einen Rechteckumriss mit der oberen linken Ecke bei (x, y).
ReturnsNichts.
display.fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)returns voidZeichnet einen gefüllten Kreis mit dem Mittelpunkt bei (x0, y0) und dem Radius r.
ReturnsNichts.
display.drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)returns voidZeichnet einen Kreisumriss mit dem Mittelpunkt bei (x0, y0) und dem Radius r.
ReturnsNichts.
display.fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)returns voidZeichnet ein gefülltes Dreieck durch die drei Eckpunkte.
ReturnsNichts.
display.drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)returns voidZeichnet einen Dreiecksumriss durch die drei Eckpunkte.
ReturnsNichts.
display.setTextColor(uint16_t c)returns voidLegt die Textfarbe für die folgenden print()-Aufrufe fest.
ReturnsNichts.
display.setCursor(int16_t x, int16_t y)returns voidLegt fest, wo der nächste ausgegebene Text beginnt, in Pixeln von der oberen linken Ecke.
ReturnsNichts.
display.setTextSize(uint8_t s)returns voidLegt die Textvergrößerung fest; 1 ist die Basisschrift mit 5×7 Pixeln.
ReturnsNichts.
display.print(value)returns size_tGibt Text an der Cursorposition in den Framebuffer aus, wie Serial.print().
ReturnsAnzahl der ausgegebenen Bytes.
display.drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)returns voidZeichnet eine 1-Bit-Bitmap mit der oberen linken Ecke bei (x, y): Gesetzte Bits übernehmen die Farbe, gelöschte Bits bleiben unverändert.
ReturnsNichts.
Parameter
| Typ | Name | Beschreibung |
|---|---|---|
int16_t | x, y | Obere linke Ecke in Pixeln. |
const uint8_t[] | bitmap | Das Bitmap-Array, hier logo aus logoImg.h. |
int16_t | w, h | Breite und Höhe der Bitmap, hier logo_w und logo_h. |
uint16_t | color | Farbe für die gesetzten Bits. |
Alle Zeichenfunktionen stammen aus der Adafruit-GFX-Klasse, auf der die Bibliothek aufbaut. Ihr Argument color ist eine der sechs Farbkonstanten.
Was Sie erwarten können
Das Panel wird zuerst auf Weiß aktualisiert. Nach dem zweiten Refresh zeigt der linke Teil des Bildschirms sechs Reihen mit Formen, neben jeder Reihe die Zeile „Welcome to Inkplate 7SPECTRA!“ und darunter fünf Kopien des Logos. Von oben nach unten sind die Reihen schwarz, weiß, blau, rot, rot und gelb, bedingt durch die oben erläuterten Farbwerte mit -1. Die weiße Reihe ist auf dem weißen Hintergrund unsichtbar. Der Sketch gibt nichts im Serial Monitor aus.
🔗Vollständiges Beispiel öffnen
examples/Inkplate7SPECTRA/Basic/Inkplate7SPECTRA_Simple