Obrazovka#

Zavedení#

Třída screen je odvozena od základní třídy brain. Řídí, jak V5 Brain zobrazuje text, čísla a grafiku na dotykové obrazovce a jak reaguje na dotykové ovládání.

Ve výchozím nastavení je pro tisk do Brainu použito písmo monospaced small, které má 12 řádků a 48 sloupců.

Pro kreslení je rozlišení Brainu 480 x 240 pixelů.

Obrazovka V5 Brain s červenými čarami mřížky zobrazující rozložení celkem 12 řádků a 48 sloupců. Rozměry v pixelech jsou 479 na šířku a 239 na výšku. Levý horní roh začíná na (0,0) pixelech a řádek 1, sloupec 1, zatímco pravý dolní roh končí na (479, 239) pixelech a řádek 12, sloupec 48.

Přístup#

Třída screen je přístupná pomocí:

Brain.Screen

Poznámky#

  • Objekt screen je poskytován mozkem. Není konstruován přímo.

  • Projekty používají jeden globální objekt Brain , takže funkce obrazovky se volají pomocí Brain.Screen.

Příklad#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

// Create the V5 Brain
brain Brain = brain();

// Print text to the Brain screen
Brain.Screen.print("Hello!");

Členské funkce#

Třída screen obsahuje následující členské funkce:

  • print — Vypíše formátovaný text, čísla nebo booleovské hodnoty na obrazovku Brain.

  • setCursor — Přesune textový kurzor na zadaný řádek a sloupec.

  • newLine — Vymaže zbytek aktuálního řádku a přesune kurzor na další řádek.

  • clearLine — Vymaže zbytek aktuálního řádku nebo vymaže zadaný řádek.

  • row — Vrátí řádek, kam bude vytištěn text.

  • column — Vrátí sloupec, kam bude vytištěn text.

  • getStringHeight — Vrátí výšku řetězce v pixelech s použitím aktuálního písma.

  • getStringWidth — Vrátí šířku řetězce v pixelech s použitím aktuálního písma.

  • printAt — Vytiskne formátovaný text v bodě x, y.

  • clearScreen — Vymaže všechny kresby a text z obrazovky Brain.

  • setFont — Nastaví písmo použité pro tisk na obrazovce.

  • setPenWidth — Nastaví tloušťku nakreslených čar a obrysů tvarů.

  • setPenColor — Nastaví barvu textu, pixelů, čar a obrysů tvarů.

  • setFillColor — Nastaví barvu výplně pro nakreslené tvary a pozadí tištěného textu.

  • setOrigin — Nastaví počátek souřadnic obrazovky.

  • setClipRegion — Omezí výstup obrazovky na obdélníkovou oblast.

  • drawPixel — Nakreslí jeden pixel na zadané souřadnici.

  • drawLine — Nakreslí čáru mezi dvěma body.

  • drawRectangle — Nakreslí obdélník v bodě x, y o zadané velikosti.

  • drawCircle — Nakreslí kružnici v bodě x, y se zadaným poloměrem.

  • drawImageFromFile — Nakreslí obrázek ze souboru na SD kartě na obrazovku.

  • render — Povolí dvojité ukládání do vyrovnávací paměti nebo vykreslí zpětnou vyrovnávací paměť na obrazovku.

  • pressing — Vrátí, zda je obrazovka aktuálně stisknuta.

  • xPosition — Vrátí souřadnici x posledního stisknutí obrazovky.

  • yPosition — Vrátí souřadnici y posledního stisknutí obrazovky.

  • pressed — Zaregistruje funkci zpětného volání, která se spustí při stisknutí obrazovky.

  • released — Zaregistruje funkci zpětného volání, která se spustí po uvolnění obrazovky po stisknutí.

Před voláním jakékoli členské funkce screen musí být vytvořena instance brain , jak je znázorněno níže:

// Create the V5 Brain
brain Brain = brain();

print#

Zobrazuje text, čísla nebo booleovské hodnoty na obrazovce V5 Brain.

Available Functions

1 — Vypíše formátovaný text pomocí řetězcových literálů nebo řetězců ve stylu jazyka C určených pouze pro čtení.

void print(
    const char* format,
    ... );

2 — Vytiskne formátovaný text pomocí modifikovatelných znakových polí.

void print(
    char* format,
    ... );

Parameters

Parametr

Typ

Popis

format

const char*

Formátovací řetězec zadaný jako řetězcový literál nebo řetězec ve stylu jazyka C určený pouze pro čtení (například “Score: %d”).

format

char*

Formátovací řetězec poskytnutý jako modifikovatelné pole znaků.

…

Jedna nebo více dalších hodnot, které se vkládají do formátovacího řetězce, oddělených čárkami.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Výstup začíná na pozici kurzoru na obrazovce.

  • Tištěný text používá aktuální písmo obrazovky .

  • Tištěný text používá aktuální barvu pera .

  • Text vytištěný s hodnotou print se vždy vytiskne s pozadím a barva pozadí je určena aktuální barvou výplně

  • Při použití formátovacího řetězce se musí počet a typy předávaných hodnot shodovat se specifikacemi format specificiers v řetězci.

Examples
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");

Snímek obrazovky V5 Brain zobrazující v levém horním rohu bílý text Hello, Robot!.

setCursor#

Přesune kurzor na konkrétní řádek a sloupec na obrazovce V5 Brain. Další volání funkce print začne tisknout na tomto místě.

Available Functions
void setCursor(
  int32_t row, 
  int32_t col );

Parameters

Parametr

Typ

Popis

row

int32_t

Řádek, na který se má kurzor přesunout.

col

int32_t

Sloupec, do kterého se má kurzor přesunout.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Ovlivňuje, kde začíná následný textový výstup při použití print.

  • Řádky a sloupce jsou založeny na aktuálně nastaveném písmu obrazovky.

  • Výchozí písmo (mono20) používá 12 řádků a 48 sloupců.

  • Volání setCursor ovlivní pouze pozici následujícího textového výstupu.

Examples
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

Snímek obrazovky V5 Brain zobrazující řádek 3 a sloupec 12 vytištěný v horní části poblíž středu obrazovky, v dané pozici.

newLine#

Přesune kurzor na začátek dalšího řádku na obrazovce Brain.

Available Functions
void newLine();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Pokud je kurzor uprostřed věty, příkaz newLine vymaže zbytek řádku za kurzorem a poté se přesune na další řádek.

  • Po volání newLinese kurzor umístí na první sloupec dalšího řádku.

  • Pozice kurzoru a číslování řádků se nastavují pomocí setCursor.

Examples
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

Snímek obrazovky V5 Brain zobrazující dva řádky bílého textu v levém horním rohu. Horní řádek zní jako Řádek 1 a druhý řádek přímo pod ním jako Řádek 2.

clearLine#

Vymaže text z řádku na obrazovce V5 Brain.

Available Functions

1 — Vymaže zbytek aktuálního řádku od pozice kurzoru.

void clearLine();

2 — Vymaže zadaný řádek s použitím aktuálně nakonfigurované barvy výplně.

void clearLine(
    int number );

3 — Vymaže zadaný řádek pomocí předdefinovaného objektu nebo objektu vlastní barva.

void clearLine(
    int          number,
    const color& color );

4 — Vymaže zadaný řádek pomocí hexadecimální hodnoty barvy.

void clearLine(
    int         number,
    const char* color );

5 — Vymaže zadaný řádek pomocí hodnoty odstínu.

void clearLine(
    int number,
    int hue );

Parameters

Parametr

Typ

Popis

number

int

Číslo řádku, které se má vymazat. Číslování řádků začíná na 1.

color

const color&

Vymaže řádek pomocí objektu color Předdefinované barvy zahrnují:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Lze také použít objekt vlastní barva.

color

const char*

Vymaže řádek pomocí hexadecimální hodnoty barvy (například “#000000”).

hue

int

Vymaže řádek pomocí celočíselné hodnoty odstínu v rozsahu 0–359, která představuje stupně na barevném kruhu.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Vymazání řádku nezmění aktuální pozici kurzoru.

  • Pozice kurzoru a číslování řádků se nastavují pomocí setCursor.

  • Hodnota parametru hue je založena na kruhovém barevném kruhu, jak je znázorněno níže, kde hodnoty představují stupně kolem kruhu (například červená poblíž 0°, zelená poblíž 120° a modrá poblíž 240°).

Barevné kolo zobrazující rozsah barev od 0 do 359, kde červená je 0, zelená je 120 a modrá je 240.

Examples
// Display text on two rows
Brain.Screen.print("This text stays");
Brain.Screen.newLine();
Brain.Screen.print("This disappears");

// Wait 3 seconds before clearing row 2
wait(3, seconds);
Brain.Screen.clearLine(2);

row#

Vrátí řádek, kde bude text vytištěn na obrazovce V5 Brain.

Available Functions
int32_t row();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Vrací hodnotu int32_t představující řádek, kam bude text vytištěn.

Číslování řádků začíná od 1.

Notes
  • Pozice kurzoru je založena na aktuálním písmu obrazovky.

  • Vrácená hodnota označuje, kde se zobrazí další tištěný výstup.

  • Hodnota řádku se změní při tisku textu nebo při volání funkce setCursor.

Examples
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print(Brain.Screen.row());

Snímek obrazovky V5 Brain zobrazující bílý text 3 v levém horním kvadrantu obrazovky, na pozici 12. řádku 3. sloupce.

column#

Vrátí sloupec, kde bude text vytištěn na obrazovce V5 Brain.

Available Functions
int32_t column();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Vrací hodnotu int32_t představující sloupec, kam bude text vytištěn.

Číslování sloupců začíná od 1.

Notes
  • Pozice kurzoru je založena na aktuálním písmu obrazovky.

  • Vrácená hodnota označuje, kde se zobrazí další tištěný výstup.

  • Hodnota sloupce se změní při tisku textu nebo při volání funkce setCursor.

Examples
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

Snímek obrazovky V5 Brain zobrazující bílý text 15 v levém horním kvadrantu obrazovky, na pozici 15 ve 3. řádku.

getStringHeight#

Vrátí výšku řetězce v pixelech při vykreslení na obrazovce V5 Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parametr

Typ

Popis

cstr

const char*

Text, který má být měřen, zadaný jako řetězec ve stylu jazyka C (například “Hello”).

Return Values

Vrací hodnotu int32_t která představuje výšku řetězce v pixelech při vykreslení na obrazovce Brain.

Notes

getStringWidth#

Vrátí šířku řetězce v pixelech při vykreslení na obrazovce V5 Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parametr

Typ

Popis

cstr

const char*

Text, který má být měřen, zadaný jako řetězec ve stylu jazyka C (například “Hello”).

Return Values

Vrací hodnotu int32_t která představuje šířku řetězce v pixelech při vykreslení na obrazovce Brain.

Notes

printAt#

Vytiskne text, čísla nebo booleovské hodnoty na určité souřadnici na obrazovce V5 Brain.

Available Functions

1 — Vytiskne formátovaný výstup na zadané místo v pixelu.

void printAt(
    int32_t    x,
    int32_t    y,
    const char* format,
    ... );

2 — Vytiskne formátovaný výstup na zadané místo v pixelu a nastaví, zda je pozadí textu neprůhledné nebo průhledné.

void printAt(
    int32_t    x,
    int32_t    y,
    bool       bOpaque,
    const char* format,
    ... );

Parameters

Parametr

Typ

Popis

x

int32_t

Pozice x pro tisk, vztažená k počátku obrazovky.

y

int32_t

Pozice y pro tisk, vztažená k počátku obrazovky.

bOpaque

bool

Určuje, zda se tištěný text vykreslí neprůhledně nebo průhledně:

  • true — Pozadí tištěného textu se vyplní pomocí aktuální barvy výplně.
  • false — Text se vykreslí průhledně a pozadí se nevyplní.

format

const char*

Formátovací řetězec, který určuje, co se vypíše na obrazovce (například “Score: %d”).

…

Jedna nebo více dalších hodnot, které se vkládají do formátovacího řetězce, oddělených čárkami.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Souřadnice x a y jsou relativní vzhledem k aktuálnímu počátku obrazovky, který lze změnit pomocí setOrigin.

  • Tištěný text používá aktuální písmo obrazovky .

  • Tištěný text používá aktuální barvu pera .

  • Při použití formátovacího řetězce se musí počet a typy předávaných hodnot shodovat se specifikacemi format specificiers v řetězci.

Examples
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

Snímek obrazovky V5 Brain s bílým textem „Na střed“, vycentrovaným na obrazovce.

clearScreen#

Vymaže všechny kresby a text z obrazovky Brain a resetuje kurzor na řádek 1, sloupec 1.

Available Functions

1 — Vyčistí obrazovku do černé.

void clearScreen();

2 — Vyčistí obrazovku pomocí předdefinovaného objektu nebo objektu vlastní barva.

void clearScreen(
    const color& color );

3 — Vymaže obrazovku pomocí hexadecimální hodnoty barvy.

void clearScreen(
    const char* color );

4 — Vyčistí obrazovku pomocí hodnoty odstínu.

void clearScreen(
    int hue );

Parameters

Parametr

Typ

Popis

color

const color&

Vyčistí obrazovku pomocí objektu color Předdefinované barvy zahrnují:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Lze zde také použít vlastní objekt barvy.

color

const char*

Vymaže obrazovku pomocí hexadecimální hodnoty barvy reprezentované jako řetězec (například “#000000”).

hue

int

Vyčistí obrazovku pomocí celočíselné hodnoty odstínu v rozsahu 0–359, která představuje stupně na barevném kruhu.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Hodnota parametru hue je založena na kruhovém barevném kruhu, jak je znázorněno níže, kde hodnoty představují stupně kolem kruhu (například červená poblíž 0°, zelená poblíž 120° a modrá poblíž 240°).

Barevné kolo zobrazující rozsah barev od 0 do 359, kde červená je 0, zelená je 120 a modrá je 240.

Examples
// Clear screen after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen();


// Clear screen to blue after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen(blue);

Snímek obrazovky V5 Brain s celou tisknutelnou plochou jasně modrou.

setFont#

Nastavuje písmo použité pro text zobrazený na obrazovce V5 Brain.

Toto určuje písmo použité na následný textový výstup při použití funkcí pro text na obrazovce, jako například print.

Available Functions
void setFont(
  fontType font );

Parameters

Parametr

Typ

Popis

font

fontType

Sets the font to one of the following:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Can print Chinese, Japanese, and Korean characters.
    • Simplified Chinese — Can be seen up to column 28.
    • Traditional Chinese — Can be seen up to column 28.
    • Japanese (Kanji) — Can be seen up to column 28.
    • Korean (Hangul) — Can be seen up to column 30.
These options are shown below.

Snímek obrazovky V5 Brain s číslicemi a písmeny vytištěnými bílou barvou v levém horním rohu písmem MONO 12. Na jednom řádku, zhruba přes čtvrtinu šířky obrazovky, je zobrazeno AZ. V levém dolním rohu je 80 sloupců a 20 řádků.
mono12

Stejný obrázek jako předchozí, s fontem Mono 15. Zobrazuje AZ na jednom řádku, téměř přes polovinu šířky obrazovky. V levém dolním rohu je zobrazeno 68 sloupců a 16 řádků.
mono15

Stejný obrázek jako předchozí, s fontem Mono 20. Zobrazuje AZ na jednom řádku, přes téměř dvě třetiny šířky obrazovky. V levém dolním rohu je zobrazeno 48 sloupců a 12 řádků.
mono20

Stejný obrázek jako předchozí, s fontem Mono 30. Zobrazuje AZ na jednom řádku, téměř přes celou šířku obrazovky. V levém dolním rohu je zobrazeno 32 sloupců a 8 řádků.
mono30

Stejný obrázek jako předchozí, s fontem Mono 40. Zobrazuje AX na jednom řádku, přes celou šířku obrazovky. V levém dolním rohu je 24 sloupců a 6 řádků.
mono40

Stejný obrázek jako předchozí, s fontem Mono 60. Zobrazuje AP na jednom řádku, přes celou šířku obrazovky. Dole ukazuje 16 sloupců a 4 řádky.
mono60

Stejný obrázek jako předchozí, s fontem Prop 20. Zobrazuje AZ na jednom řádku, přes téměř dvě třetiny šířky obrazovky. V levém dolním rohu je 48 sloupců a 12 řádků.
prop20

Stejný obrázek jako předchozí, s fontem Prop 30. Zobrazuje AZ na jednom řádku, který zabírá téměř celou šířku obrazovky. V levém dolním rohu je zobrazeno 32 sloupců a 8 řádků.
prop30

Stejný obrázek jako předchozí, s fontem Prop 40. Zobrazuje AU na jednom řádku, přes celou šířku obrazovky. V levém dolním rohu je 24 sloupců a 6 řádků.
prop40

Stejný obrázek jako předchozí, s fontem Prop 60. Zobrazuje AN na jednom řádku, přes celou šířku obrazovky. Dole má 15 sloupců a 4 řádky.
prop60

Stejný obrázek jako předchozí, s fontem CJK 16. Zobrazuje AZ na jednom řádku, který zabírá asi dvě třetiny obrazovky. Následující řádky čtou VEXcode ve zjednodušené čínštině, tradiční čínštině, korejštině a japonštině. Dole je zobrazeno 43 sloupců a 12 řádků.
fontType::cjk16

Return Values

Tato funkce nevrací hodnotu.

Examples
// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

Snímek obrazovky V5 Brain zobrazující bílý text s nápisem VEX větším písmem než ve výchozím nastavení v levém horním rohu.


// Print in Chinese
Brain.Screen.setFont(fontType::cjk16);
Brain.Screen.print("VEX机器人");

Snímek obrazovky V5 Brain zobrazující v levém horním rohu text „VEX机器人“ v čínském písmu.

setPenWidth#

Nastavuje tloušťku nakreslených čar a obrysů tvarů.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parametr

Typ

Popis

width

uint32_t

Šířka pera v pixelech od 0 do 32.

Return Values

Tato funkce nevrací hodnotu.

Notes Examples
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Snímek obrazovky V5 Brain zobrazující obdélník s tlustými okraji vytištěnými v levém horním kvadrantu obrazovky.

setPenColor#

Nastavuje barvu textu, pixelů, čar a obrysů tvarů.

Available Functions

1 — Nastaví barvu pera pomocí předdefinovaného objektu nebo objektu vlastní barva.

void setPenColor(
    const color& color );

2 — Nastaví barvu pera pomocí hexadecimální hodnoty barvy.

void setPenColor(
    const char* color );

3 — Nastaví barvu pera pomocí hodnoty odstínu.

void setPenColor(
    int hue );

Parameters

Parametr

Typ

Popis

color

const color&

Nastaví barvu pera pomocí objektu s hodnotou color Předdefinované barvy zahrnují:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Nastaví barvu pera pomocí hexadecimální hodnoty barvy reprezentované jako řetězec (například “#FF0000”).

hue

int

Nastaví barvu pera pomocí celočíselné hodnoty odstínu v rozsahu 0–359, která představuje stupně na barevném kruhu (například 0 je červená, 120 je zelená a 240 je modrá).

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Výchozí barva pera na začátku projektu je white.

  • Barva pera se používá pro obrysy tvarů (například s drawCircle nebo drawRectangle), textový a číselný výstup (s print a printAt) a jednotlivé pixely vykreslené s drawPixel.

  • Hodnota parametru hue je založena na kruhovém barevném kruhu, jak je znázorněno níže, kde hodnoty představují stupně kolem kruhu (například červená poblíž 0°, zelená poblíž 120° a modrá poblíž 240°).

Barevné kolo zobrazující rozsah barev od 0 do 359, kde červená je 0, zelená je 120 a modrá je 240.

Examples
// Draw a rectangle with orange borders
Brain.Screen.setPenColor(orange);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Snímek obrazovky V5 Brain zobrazující oranžově nakreslený obdélník v levém horním kvadrantu obrazovky.

setFillColor#

Nastavuje barvu výplně použitou při kreslení tvarů.

Available Functions

1 — Nastaví barvu výplně pomocí předdefinovaného objektu nebo objektu vlastní barva.

void setFillColor(
    const color& color );

2 — Nastaví barvu výplně pomocí hexadecimální hodnoty barvy.

void setFillColor(
    const char* color );

3 — Nastaví barvu výplně pomocí hodnoty odstínu.

void setFillColor(
    int hue );

Parameters

Parametr

Typ

Popis

color

const color&

Nastaví barvu výplně pomocí objektu s hodnotou color Předdefinované barvy zahrnují:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Nastaví barvu výplně pomocí hexadecimální hodnoty barvy reprezentované jako řetězec (například “#00FF00”).

hue

int

Nastaví barvu výplně pomocí celočíselné hodnoty odstínu v rozsahu 0–359, která představuje stupně na barevném kruhu (například 0 je červená, 120 je zelená a 240 je modrá).

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Výchozí barva výplně na začátku projektu je black.

  • Barva výplně se používá pro vnitřek tvarů (například s drawCircle nebo drawRectangle).

  • Barva výplně se používá jako barva pozadí pro tištěný text (například u print a printAt).

    • Pokud se u tištěného textu použije hodnota transparent , pozadí bude black.

  • Hodnota parametru hue je založena na kruhovém barevném kruhu, jak je znázorněno níže, kde hodnoty představují stupně kolem kruhu (například červená poblíž 0°, zelená poblíž 120° a modrá poblíž 240°).

Barevné kolo zobrazující rozsah barev od 0 do 359, kde červená je 0, zelená je 120 a modrá je 240.

Examples
// Draw a rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(50, 100, 130, 60);

Snímek obrazovky V5 Brain zobrazující obdélník vyplněný fialovou barvou v levém dolním kvadrantu obrazovky.

setOrigin#

Nastaví počátek použitý pro kreslení a tisk na základě souřadnic na obrazovce Brain.

Available Functions
void setOrigin(
  int32_t x,
  int32_t y );

Parameters

Parametr

Typ

Popis

x

int32_t

Pozice x-ového počátku vzhledem k levému hornímu rohu obrazovky Brain od 0 do 479.

y

int32_t

Pozice y počátku vzhledem k levému hornímu rohu obrazovky Brain od 0 do 239.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Výchozí počátek je levý horní roh obrazovky na souřadnici (0, 0).

  • Počátek souřadnic se vztahuje na funkce souřadnic, jako například drawLine, drawRectangle, drawCircle a printAt.

  • Počátek zůstává v platnosti, dokud se znovu nezmění nebo dokud se projekt neresetuje.

setClipRegion#

Definuje obdélníkovou oblast na obrazovce, kde budou umístěny všechny kresby a text. Obsah mimo tuto oblast se nezobrazí.

Available Functions
void setClipRegion(
  int x,
  int y,
  int width,
  int height );

Parameters

Parametr

Typ

Popis

x

int

Souřadnice x levého horního rohu oblasti klipu, zadaná jako celé číslo od 0 do 479.

y

int

Souřadnice y levého horního rohu oblasti klipu, zadaná jako celé číslo od 0 do 239.

width

int

Šířka oblasti klipu v pixelech, udaná jako celé číslo od 0 do 479.

height

int

Výška oblasti klipu v pixelech, udaná jako celé číslo od 0 do 239.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Funkce kreslení se stále provádějí, i když spadají mimo oblast klipu, ale viditelná je pouze část uvnitř oblasti.

  • Souřadnice x a y jsou relativní vzhledem k aktuálnímu počátku obrazovky, který lze změnit pomocí setOrigin.

  • Oblast oříznutí se vztahuje pouze na aktuální vlákno.

  • Nastavení nové oblasti oříznutí nahradí jakoukoli dříve nastavenou oblast oříznutí pro aktuální vlákno.

Examples
// Restrict text and drawings to a specific region
Brain.Screen.setClipRegion(0, 0, 120, 120);
Brain.Screen.drawRectangle(60, 60, 100, 100, red);
Brain.Screen.printAt(60, 60, "Cut off!");

Snímek obrazovky V5 Brain s bílým textem Cut (Vyříznutý) s plným červeným čtvercem přímo pod ním v levém horním kvadrantu, který odráží obsah vytištěný v oblasti klipu.

drawPixel#

Nakreslí jeden pixel na obrazovce V5 Brain ve vybraném umístění pixelu x a y.

Available Functions
void drawPixel(
  int x,
  int y );

Parameters

Parametr

Typ

Popis

x

int

Souřadnice x, kde bude pixel vykreslen, zadaná jako celé číslo od 0 do 479.

y

int

Souřadnice y, kde bude pixel vykreslen, zadaná jako celé číslo od 0 do 239.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Pixely se kreslí s použitím aktuální barvy pera nastavené pomocí setPenColor.

  • Souřadnice x a y jsou relativní vzhledem k aktuálnímu počátku obrazovky, který lze nastavit pomocí setOrigin.

  • Pokud je zadané umístění pixelu mimo hranice obrazovky, pixel se nevykreslí.

Examples
// Draw the pixels marking the corners of a square
Brain.Screen.drawPixel(250, 100);
Brain.Screen.drawPixel(275, 100);
Brain.Screen.drawPixel(250, 125);
Brain.Screen.drawPixel(275, 125);

Snímek obrazovky V5 Brain zobrazující směs pixelů znázorňujících rohy čtverce poblíž středu obrazovky.

drawLine#

Nakreslí přímku spojující dva body na obrazovce V5 Brain.

Available Functions
void drawLine(
  int x1,
  int y1,
  int x2,
  int y2 );

Parameters

Parametr

Typ

Popis

x1

int

Počáteční souřadnice x čáry, zadaná jako celé číslo od 0 do 479.

y1

int

Počáteční souřadnice y čáry, zadaná jako celé číslo od 0 do 239.

x2

int

Koncová souřadnice x čáry, zadaná jako celé číslo od 0 do 479.

y2

int

Koncová souřadnice y čáry, zadaná jako celé číslo od 0 do 239.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Čáry se kreslí s použitím aktuální barvy pera nastavené pomocí setPenColor.

  • Šířka čáry je určena aktuální šířkou pera nastavenou pomocí setPenWidth.

  • Souřadnice x a y jsou relativní vzhledem k aktuálnímu počátku obrazovky, který lze nastavit pomocí setOrigin.

  • Pokud jakákoli část čáry leží mimo hranice obrazovky, vykreslí se pouze viditelná část.

Examples
// Draw a line from the top left to bottom right of the screen
Brain.Screen.drawLine(0, 0, 479, 239);

Snímek obrazovky V5 Brain ukazuje tenkou diagonální čáru přes střed, od levého horního rohu k pravému dolnímu rohu.

drawRectangle#

Nakreslí obdélník na obrazovce V5 Brain v zadané pozici a velikosti.

Available Functions

1 — Nakreslí a vyplní obdélník s použitím aktuálně nakonfigurované barvy výplně.

void drawRectangle(
    int x,
    int y,
    int width,
    int height );

2 — Nakreslí a vyplní obdélník pomocí předdefinovaného objektu nebo objektu vlastní barva.

void drawRectangle(
    int           x,
    int           y,
    int           width,
    int           height,
    const color&  color );

3 — Nakreslí a vyplní obdélník hexadecimální hodnotou barvy.

void drawRectangle(
    int           x,
    int           y,
    int           width,
    int           height,
    const char*   color );

4 — Nakreslí a vyplní obdélník pomocí hodnoty odstínu.

void drawRectangle(
    int x,
    int y,
    int width,
    int height,
    int hue );

Parameters

Parametr

Typ

Popis

x

int

Souřadnice x levého horního rohu obdélníku, zadaná jako celé číslo od 0 do 479.

y

int

Souřadnice y levého horního rohu obdélníku, zadaná jako celé číslo od 0 do 239.

width

int

Šířka obdélníku, zadaná jako celé číslo od 0 do 479.

height

int

Výška obdélníku, zadaná jako celé číslo od 0 do 239.

color

const color&

Vyplní obdélník pomocí objektu s barvou color Předdefinované barvy zahrnují:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Lze také použít objekt vlastní barva.

color

const char*

Vyplní obdélník hexadecimální hodnotou barvy (například “#FF0000”).

hue

int

Vyplní obdélník hodnotou odstínu v rozsahu 0–359.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Obrys obdélníku se vykreslí s použitím aktuální barvy pera nastavené pomocí setPenColor.

  • Tloušťka obrysu je určena aktuální šířkou pera nastavenou pomocí setPenWidth.

  • Pokud není zadán parametr color , vnitřek obdélníku se vyplní aktuální barvou výplně nastavenou pomocí setFillColor.

  • Souřadnice x a y jsou relativní vzhledem k aktuálnímu počátku obrazovky, který lze změnit pomocí setOrigin.

  • Pokud jakákoli část obdélníku leží mimo hranice obrazovky, vykreslí se pouze viditelná část.

  • Hodnota parametru hue je založena na kruhovém barevném kruhu, jak je znázorněno níže, kde hodnoty představují stupně kolem kruhu (například červená poblíž 0°, zelená poblíž 120° a modrá poblíž 240°).

Barevné kolo zobrazující rozsah barev od 0 do 359, kde červená je 0, zelená je 120 a modrá je 240.

Examples
// Draw a rectangle on the screen
Brain.Screen.drawRectangle(50, 50, 130, 60);

Snímek obrazovky V5 Brain ukazuje obdélník s tenkým bílým okrajem vytištěným v levém horním kvadrantu.

drawCircle#

Nakreslí kruh na obrazovce V5 Brain v zadané poloze a poloměru.

Available Functions

1 — Nakreslí a vyplní kruh s použitím aktuálně nakonfigurované barvy výplně.

void drawCircle(
    int x,
    int y,
    int radius );

2 — Nakreslí a vyplní kruh pomocí předdefinovaného objektu nebo objektu vlastní barva.

void drawCircle(
    int           x,
    int           y,
    int           radius,
    const color&  color );

3 — Nakreslí a vyplní kruh pomocí hexadecimální hodnoty barvy.

void drawCircle(
    int           x,
    int           y,
    int           radius,
    const char*   color );

4 — Nakreslí a vyplní kruh pomocí hodnoty odstínu.

void drawCircle(
    int x,
    int y,
    int radius,
    int hue );

Parameters

Parametr

Typ

Popis

x

int

Souřadnice x středu kružnice, zadaná jako celé číslo od 0 do 479.

y

int

Souřadnice y středu kružnice, zadaná jako celé číslo od 0 do 239.

radius

int

Poloměr kruhu, zadaný jako celé číslo od 0 do 239 pixelů.

color

const color&

Vyplní kruh pomocí objektu s barvou color Předdefinované barvy zahrnují:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Lze také použít objekt vlastní barva.

color

const char*

Vyplní kruh hexadecimální hodnotou barvy (například “#FF0000”).

hue

int

Vyplní kruh hodnotou odstínu v rozsahu 0–359.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Obrys kruhu se nakreslí pomocí aktuální barvy pera nastavené pomocí setPenColor.

  • Tloušťka obrysu je určena aktuální šířkou pera nastavenou pomocí setPenWidth.

  • Pokud není zadán parametr color , vnitřek kruhu se vyplní aktuální barvou výplně nastavenou pomocí setFillColor.

  • Souřadnice x a y jsou relativní vzhledem k aktuálnímu počátku obrazovky, který lze změnit pomocí setOrigin.

  • Hodnota parametru hue je založena na kruhovém barevném kruhu, jak je znázorněno níže, kde hodnoty představují stupně kolem kruhu (například červená poblíž 0°, zelená poblíž 120° a modrá poblíž 240°).

Barevné kolo zobrazující rozsah barev od 0 do 359, kde červená je 0, zelená je 120 a modrá je 240.

Examples
// Draw a circle on the screen
Brain.Screen.drawCircle(240, 120, 40);

Snímek obrazovky V5 Brain ukazuje kruh s tenkým bílým okrajem uprostřed.

drawImageFromFile#

Nakreslí obrázek na obrazovku V5 Brain pomocí obrazového souboru uloženého na SD kartě.

Available Functions
bool drawImageFromFile(
  const char* name,
  int x,
  int y );

Parameters

Parametr

Typ

Popis

name

const char*

Název souboru s obrázkem na SD kartě. Soubor musí mít příponu .bmp nebo .png.

x

int

Souřadnice x v pixelech od 0 do 479, na které bude vykreslen levý okraj obrázku.

y

int

Souřadnice y v pixelech od 0 do 239, na které bude vykreslen horní okraj obrázku.

Return Values

Vrací booleovskou hodnotu označující, zda byl obrázek úspěšně vykreslen:

  • true — Obrázek byl úspěšně načten a vykreslen na obrazovce.
  • false — Obrázek se nepodařilo vykreslit (například pokud soubor neexistuje nebo je neplatný).

Notes
  • Podporované formáty obrázků jsou .bmp a .png.

  • Velikost obrazového souboru nesmí překročit 512 KB.

    • Pro minimalizaci velikosti souboru se doporučuje 8bitové kódování RLE.

  • Maximální podporované rozměry obrázku odpovídají velikosti obrazovky Brain (přibližně 479 x 239 pixelů).

  • Souřadnice x a y jsou relativní vzhledem k aktuálnímu počátku obrazovky, který lze změnit pomocí setOrigin.

Examples
// Draw a bmp file on the Brain's screen at coordinate 0, 0
Brain.Screen.drawImageFromFile("test_image.bmp", 0, 0);

render#

Umožňuje dvojité ukládání do vyrovnávací paměti pro obrazovku Brainu. Po volání se žádné kreslicí funkce (jako text, tvary nebo obrázky) již nebudou okamžitě zobrazovat po zbytek projektu. Místo toho se aktualizace zobrazí pouze při opětovném použití render To umožňuje plynulejší a kontrolovanější aktualizace obrazovky, ale znamená to, že nic nebude viditelné, dokud se nepoužije render.

Available Functions

1 — Povolí dvojité ukládání do vyrovnávací paměti nebo vykreslí zpětnou vyrovnávací paměť na obrazovku.

bool render();

2 — Vykreslí zpětný buffer na obrazovku s možností kontroly nad chováním vertikální synchronizace a volitelným spuštěním plánovače.

bool render(
    bool bVsyncWait,
    bool bRunScheduler = true );

Parameters

Parametr

Typ

Popis

bVsyncWait

bool

​

  • true — Před vykreslením počkat na vertikální obnovení obrazovky, aby se snížilo trhání obrazu.
  • false — Před vykreslením nečekat na vertikální obnovení obrazovky.

bRunScheduler

bool

Volitelné.

  • true (výchozí) – Povolit spouštění úloh na pozadí během čekání na vykreslení.
  • false – Nepovolit spouštění úloh na pozadí během čekání na vykreslení.

Return Values

Vrací booleovskou hodnotu označující, zda byly uložené kresby ve vyrovnávací paměti úspěšně vykresleny na obrazovku:

  • true — Kresby byly úspěšně vykresleny na obrazovce.
  • false — Kresby se nepodařilo vykreslit na obrazovce.
  • Notes
    • Volání render bude vyžadovat render , které bude použito pro zbytek projektu.

    Examples
    Brain.Screen.render();
    
    // Draw text to the back buffer
    Brain.Screen.print("Render later...");
    
    // Wait for a screen press to render drawings
    while (!Brain.Screen.pressing()) {
      wait(20, msec);
    }
    Brain.Screen.render();
    
    

pressing#

Hlásí, zda je obrazovka V5 Brain aktuálně stisknuta.

Available Functions
bool pressing();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Vrací booleovskou hodnotu označující aktuální stav stisknutí obrazovky:true — Obrazovka je aktuálně stisknuta. nebo false — Obrazovka není stisknuta.

Examples
// Change the screen's color after it's pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.setFillColor(green);
Brain.Screen.drawRectangle(0, 0, 479, 239);


// Display different messages after the screen is pressed
while (!Brain.Screen.pressing()) {
  wait(5, msec);
}
Brain.Screen.print("First message!");
Brain.Screen.newLine();

// Lift finger to press the screen again
while (Brain.Screen.pressing()) {
  wait(5, msec);
}
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}
Brain.Screen.print("Second message!");
Brain.Screen.newLine();

xPosition#

Vrátí souřadnici x posledního stisknutí tlačítka na obrazovce V5 Brain.

Available Functions
int32_t xPosition();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Vrací hodnotu int32_t která představuje souřadnici x posledního stisknutí obrazovky v pixelech od 0 do 479.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

yPosition#

Vrátí souřadnici y posledního stisknutí tlačítka na obrazovce V5 Brain.

Available Functions
int32_t yPosition();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Vrací hodnotu int32_t která představuje souřadnici y posledního stisknutí obrazovky v pixelech od 0 do 239.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

pressed#

Registruje funkci, která se má volat při stisknutí obrazovky V5 Brain.

Available Functions

1 — Volá funkci při stisknutí obrazovky.

void pressed(
    void (*callback)(void)
);

2 — Volá funkci při stisknutí obrazovky a předá uživatelsky definovaný argument funkci zpětného volání.

void pressed(
    void (*callback)(void*),
    void* arg );

Parameters

Parametr

Typ

Popis

callback

void (*)(void)

Funkce, která se volá při stisknutí obrazovky.

callback

void ()(void)

Funkce, která se volá při stisknutí obrazovky a přijímá uživatelem definovaný argument.

arg

void*

Uživatelem definovaná hodnota, která je předána zpětné funkci při stisknutí obrazovky.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Funkce zpětného volání se provede při každém stisknutí obrazovky Brain.

  • V daný okamžik lze zaregistrovat pouze jednu funkci zpětného volání; volání pressed nahradí předchozí zpětné volání.

  • Funkce zpětného volání musí vrátit void.

Examples

Definujte callback funkci (mimo int main())

// Tracks how many times the screen is pressed.
void onScreenPressed(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Pressed %d times", *count);
}

Zaregistrujte zpětné volání uvnitř int main()

int main() {
  int pressCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.pressed(onScreenPressed, &pressCount);

  while (true) {
    wait(20, msec);
  }
}

released#

Registruje funkci, která se má volat po uvolnění obrazovky V5 Brain po stisknutí.

Available Functions

1 — Volá funkci, když je obrazovka po stisknutí uvolněna.

void released(
    void (*callback)(void)
);

2 — Volá funkci po uvolnění obrazovky po stisknutí a předá uživatelsky definovaný argument funkci zpětného volání.

void released(
    void (*callback)(void*),
    void* arg );

Parameters

Parametr

Typ

Popis

callback

void (*)(void)

Funkce, která se volá při uvolnění obrazovky po stisknutí.

callback

void ()(void)

Funkce, která se volá při uvolnění obrazovky po stisknutí a obdrží uživatelem definovaný argument.

arg

void*

Uživatelem definovaná hodnota, která se předává zpětné funkci při uvolnění obrazovky po stisknutí.

Return Values

Tato funkce nevrací hodnotu.

Notes
  • Funkce zpětného volání se provede pokaždé, když je obrazovka Brain uvolněna po stisknutí.

  • V daný okamžik lze zaregistrovat pouze jednu zpětnou funkci; opětovné volání released nahradí předchozí zpětnou funkci.

  • Funkce zpětného volání musí vrátit void.

Examples

Definujte callback funkci (mimo int main())

// Tracks how many times the screen is released.
void onScreenReleased(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Released %d times", *count);
}

Zaregistrujte zpětné volání uvnitř int main()

int main() {
  int releaseCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.released(onScreenReleased, &releaseCount);

  while (true) {
    wait(20, msec);
  }
}