Skip to main content

Crtanje grafike

Što ovaj primjer prikazuje​

Crtanje ispunjenih i obrisnih pravokutnika, krugova i trokuta, teksta i bitmap logotipa u nekoliko boja, a zatim njihov prikaz jednim osvježavanjem. Logotip dolazi iz datoteke logoImg.h, koja se nalazi u mapi primjera pored skice.

Primjer koda​

Select Board
Inkplate7SPECTRA_Simple.ino
#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()
{
}

Skica prosljeđuje INKPLATE_GREEN-1 i INKPLATE_BLUE-1 kao boje. Konstante boja su indeksi od 0 do 5, pa je INKPLATE_GREEN-1 indeks 4 (plava), a INKPLATE_BLUE-1 indeks 3 (crvena). Konstante koristite samostalno kada želite zelenu i plavu boju.

Korištene funkcije​

Inkplate()returns None

Stvara objekt Inkplate. Inkplate 7SPECTRA ima jedan šestobojni način rada, pa konstruktor ne prima argument načina rada.

ReturnsKonstruktor; nema povratne vrijednosti.

display.begin()returns void

Inicijalizira biblioteku, periferne jedinice i međuspremnik okvira. Pozovite je jednom u setup(); kasniji pozivi se zanemaruju.

ReturnsNišta.

display.clearDisplay()returns void

Ispunjava međuspremnik okvira bijelom bojom. Ne mijenja zaslon; za to nakon toga pozovite display().

ReturnsNišta.

display.display(bool _leaveOn = 0)returns void

Šalje cijeli međuspremnik okvira na zaslon i osvježava ga. Skica ga poziva jednom na početku radi brisanja zaslona i jednom na kraju radi prikaza oblika.

ReturnsNišta.

display.fillScreen(uint16_t color)returns void

Ispunjava cijeli međuspremnik okvira jednom bojom.

ReturnsNišta.

display.fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)returns void

Crta ispunjeni pravokutnik s gornjim lijevim kutom u točki (x, y).

ReturnsNišta.

display.drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)returns void

Crta obris pravokutnika s gornjim lijevim kutom u točki (x, y).

ReturnsNišta.

display.fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)returns void

Crta ispunjeni krug sa središtem u (x0, y0) i polumjerom r.

ReturnsNišta.

display.drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)returns void

Crta obris kruga sa središtem u (x0, y0) i polumjerom r.

ReturnsNišta.

display.fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)returns void

Crta ispunjeni trokut kroz tri zadane točke vrhova.

ReturnsNišta.

display.drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)returns void

Crta obris trokuta kroz tri zadane točke vrhova.

ReturnsNišta.

display.setTextColor(uint16_t c)returns void

Postavlja boju teksta za sljedeće pozive print().

ReturnsNišta.

display.setCursor(int16_t x, int16_t y)returns void

Postavlja mjesto na kojem počinje sljedeći ispisani tekst, u pikselima od gornjeg lijevog kuta.

ReturnsNišta.

display.setTextSize(uint8_t s)returns void

Postavlja povećanje teksta; 1 je osnovni font od 5×7 piksela.

ReturnsNišta.

display.print(value)returns size_t

Ispisuje tekst na kursoru u međuspremnik okvira, kao Serial.print().

ReturnsBroj ispisanih bajtova.

display.drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)returns void

Crta 1-bitnu bitmapu s gornjim lijevim kutom u točki (x, y): postavljeni bitovi poprimaju boju, a obrisani ostaju kakvi jesu.

ReturnsNišta.

Parametri

TipNazivOpis
int16_tx, yGornji lijevi kut u pikselima.
const uint8_t[]bitmapPolje bitmape, ovdje logo iz logoImg.h.
int16_tw, hŠirina i visina bitmape, ovdje logo_w i logo_h.
uint16_tcolorBoja za postavljene bitove.

Sve funkcije crtanja dolaze iz klase Adafruit GFX na kojoj se biblioteka temelji. Njihov argument color je jedna od šest konstanti boja.

Što očekivati​

Zaslon se prvo osvježi u bijelo. Nakon drugog osvježavanja lijevi dio zaslona prikazuje šest redova oblika, redak teksta "Welcome to Inkplate 7SPECTRA!" pored svakog reda i pet kopija logotipa ispod njih. Od vrha su redovi crni, bijeli, plavi, crveni, crveni i žuti, zbog vrijednosti boja -1 objašnjenih gore. Bijeli red nevidljiv je na bijeloj pozadini. Skica ništa ne ispisuje u Serial Monitor.

🔗Otvorite cjelokupni primjer

examples/Inkplate7SPECTRA/Basic/Inkplate7SPECTRA_Simple

→