Alakzatok rajzolásához az Adafruit_CircuitPython_Display_Shapes könyvtárat használhatjuk (lásd displayio UI quickstart)
referencia kézikönyvét lásd itt: Adafruit Display_Shapes Library leírása
Pont – egy bitmap objektum pontjait közvetlenül címezhetjük, például bitmap[10,20] = color
Line(x0,y0,x1,y1,color) – végpontokkal adott szakasz rajzolása
Triangle(x0,y0,x1,y1,x2,y2,fill,outline) – kitöltött vagy üres háromszög rajzolása (a None értékkel definált szín átlátszó)
Rect(x0,y0,width,height,fill,outline,stroke) – (kitöltött) téglalap rajzolása
RoundRect(x0,y0,width,height,r,fill,outline,stroke) – lekerekített sarkú (kitöltött) téglalap rajzolása (r – a sugár)
Circle(x0,y0,r,fill,outline,stroke) – (kitöltött) kör rajzolása
Polygon(points,outline) – poligon rajzolása (points: (x,y) tupletek listája)
Sparkline(width,height,max_items, y_min, y_max,x0,y0,color) – egyszerű vonaldiagram rajzolása (add_value(adat)
– adat hozzáfűzése)
Az alakzatokat célszerű egyesével importálni, hogy később kevesebbet kelljen írni:
import board
import busio
import displayio
from adafruit_st7735r import ST7735R
from adafruit_display_shapes.rect import Rect
from adafruit_display_shapes.circle import Circle
from adafruit_display_shapes.roundrect import RoundRect
from adafruit_display_shapes.triangle import Triangle
from adafruit_display_shapes.line import Line
from adafruit_display_shapes.polygon import Polygon
Az SPI kijelző inicializálása
# Release any resources currently in use for the displays
displayio.release_displays()
# create the spi device and pins we will need
spi = busio.SPI(board.B13, MOSI=board.B15)
display_bus = displayio.FourWire(spi, command=board.B1,
chip_select=board.B12, reset=board.B0)
display = ST7735R(display_bus, width=160, height=128, rotation=90, bgr=True)
A kijelzendő tartalmat összefogó csoport (Group) inicializálása
# Make the display context
splash = displayio.Group()
display.show(splash)
A fehér háttér (bg_sprite) definiálása és megjelenítése
# Make a background color fill
color_bitmap = displayio.Bitmap(160, 128, 1)
color_palette = displayio.Palette(1)
color_palette[0] = 0xFFFFFF
bg_sprite = displayio.TileGrid(color_bitmap, x=0, y=0, pixel_shader=color_palette)
splash.append(bg_sprite)
"Homokóra" rajzolása piros színű, egyenes szakaszokkal
splash.append(Line(110, 65, 135, 105, 0xFF0000))
splash.append(Line(135, 105, 110, 105, 0xFF0000))
splash.append(Line(110, 105, 135, 65, 0xFF0000))
splash.append(Line(135, 65, 110, 65, 0xFF0000))
Poligon (csillag) rajzolása kék színű vonalakkal
polygon = Polygon(
[
(127, 20),
(131, 31),
(142, 31),
(132, 38),
(137, 50),
(127, 42),
(117, 50),
(122, 38),
(112, 31),
(124, 31),
], outline=0x0000FF,
)
splash.append(polygon)
Kitöltött háromszög rajzolása (zöld kitöltés, magenta körvonal)
triangle = Triangle(85,25,60,70,105,80,fill=0x00FF00,outline=0xFF00FF)
splash.append(triangle)
Kitöltött kör rajzolása (zöld kitöltés, magenta körvonal)
circle = Circle(50,50,15,fill=0x00FF00,outline=0xFF00FF)
splash.append(circle)
Lekerekített sarkú téglalap rajzolása (lekerekítés sugara = 8, sárga kitöltés, magenta színű vastag körvonal)
roundrect = RoundRect(5,5,31,41,8,fill=0xFFFF00,outline=0xFF00FF,stroke=3)
splash.append(roundrect)
Kitöltött kék négyzet rajzolása:
rect = Rect(40, 10, 21, 21, fill=0x0000FF)
splash.append(rect)
Vastag, fekete körvonalú, üres téglalap rajzolása. Kitöltő szín nincs megadva, ezért a közepe átlátszó (ez az alapértelmezett "szín")
rect2 = Rect(25,74,31,41,outline=0x0,stroke=3)
splash.append(rect2)
A végtelen ciklusban nem csinálunk semmit:
while True:
pass