Obrazovka#

Zavedení#

Třída screen je odvozena od základní třídy brain. Řídí, jak IQ (2. generace) Brain zobrazuje text, čísla a grafiku na své vestavěné obrazovce.

Ve výchozím nastavení je písmo pro tisk do Brainu monospaced small.

Pro kreslení je rozlišení Brainu 160 x 108 pixelů.

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 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, do kterého 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 (volitelně neprůhledný).

  • clearScreen — Vyčistí celou obrazovku (volitelně na zadanou barvu).

  • 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 Brain
brain Brain = brain();

print#

Zobrazuje text, čísla nebo booleovské hodnoty na obrazovce IQ (2. generace) 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 mozku IQ (2. generace) 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 IQ (2. generace) Brain. Další volání příkazu 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á 5 řádků a 16 sloupců.

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

Examples
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Repeatedly print the Brain timer at top-left
  while (true) {
    Brain.Screen.print("%d", Brain.Timer.time(seconds));
    Brain.Screen.newLine();
    wait(1, seconds);
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
  }
}

Snímek obrazovky mozku s IQ (2. generace) zobrazující číslo 25 vytištěné v levém horním rohu obrazovky, na 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 IQ Brain (2. generace) 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 IQ (2. generace) 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 IQ (2. generace) 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("row: ", Brain.Screen.row());

Snímek obrazovky IQ Brain (2. generace) zobrazující textový řádek 3 bílým písmem na levé straně obrazovky, na pozici 12. sloupce řádku 3.

column#

Vrátí sloupec, kde bude text vytištěn na obrazovce IQ (2. generace) 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.print("column: ", Brain.Screen.column());

Snímek obrazovky IQ (2. generace) Brain zobrazující sloupec 9 bíle v horní části obrazovky, na pozici 9 v řádku 1.

getStringHeight#

Vrátí výšku řetězce v pixelech při vykreslení na obrazovce IQ Brain (2. generace).

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 IQ Brain (2. generace).

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 IQ (2. generace) 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 the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, 1);

Snímek obrazovky mozku IQ (2. generace) s bílým textem, který zní jako 1, vytištěný v místě (100, 40).

clearScreen#

Smaže všechny kresby a text z obrazovky mozku.

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(red);

Snímek obrazovky IQ (2. generace) Brain s celou tisknutelnou plochou jasně červenou.

setFont#

Nastavuje písmo použité pro text zobrazený na obrazovce IQ (2. generace) 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

Nastaví písmo na jednu z následujících možností:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
Tyto možnosti jsou zobrazeny níže.

Snímek obrazovky VEX IQ Brain s řadou čísel a písmen v písmu Mono 12. Písmena AZ jsou na jednom řádku a zabírají celou šířku obrazovky. Levý dolní roh označuje 26 znaků na šířku a 9 řádků.
mono12

Stejný snímek obrazovky jako předchozí, nyní s písmem Mono 15. Písmena AT jsou na jednom řádku a zabírají celou šířku obrazovky. Levý dolní roh označuje 20 znaků na šířku a 7 řádků.
mono15

Stejný snímek obrazovky jako předchozí, nyní s písmem Mono 20. Písmena AP jsou na jednom řádku a zabírají celou šířku obrazovky. Levý dolní roh označuje 16 znaků na šířku a 5 řádků.
mono20

Stejný snímek obrazovky jako předchozí, nyní s písmem Mono 30. Čísla od 1 do 9 a jedna 0 navíc jsou na jednom řádku a zabírají celou šířku obrazovky. Levý dolní roh označuje 3 řádky.
mono30

Stejný snímek obrazovky jako předchozí, nyní s písmem Mono 40. Čísla 1 až 8 jsou na druhém řádku a rozprostírají se po celé šířce obrazovky.
mono40

Stejný snímek obrazovky jako předchozí, nyní s písmem Mono 60. Na obrazovce je zobrazeno MN 60 velkým písmem, které zabírá téměř celou horní polovinu obrazovky.
mono60

Stejný snímek obrazovky jako předchozí, nyní s fontem Prop 20. Písmena AW jsou na jednom řádku a zabírají celou šířku obrazovky. Levý dolní roh označuje 26 znaků na šířku a 5 řádků.
prop20

Stejný snímek obrazovky jako předchozí, nyní s fontem Prop 30. Čísla 1-9 se opakují dvakrát na jednom řádku a zabírají celou šířku obrazovky. Levý dolní roh označuje 18 znaků napříč a 3 řádky.
prop30

Stejný snímek obrazovky jako předchozí, nyní s písmem Prop 40. Na horním řádku je uvedeno Prop 40 a na druhém řádku je 14 znaků a 2 řádky.
prop40

Stejný snímek obrazovky jako předchozí, nyní s písmem Prop 60. Na obrazovce je velkým písmem zobrazeno PROP 60, které zabírá téměř celou horní polovinu obrazovky.
prop60

Return Values

Tato funkce nevrací hodnotu.

Examples
// Display two different fonts on
// two separate lines
Brain.Screen.setFont(mono20);
Brain.Screen.print("Mono Medium");
Brain.Screen.newLine();
Brain.Screen.setFont(prop20);
Brain.Screen.print("Prop Medium");

Snímek obrazovky IQ Brain s bílým textem na dvou řádcích v levém horním rohu. První řádek zní Mono Medium a druhý řádek přímo pod ním zní Prop Medium menším písmem.

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 circle with a pen width of 5
Brain.Screen.drawCircle(40, 70, 20);
Brain.Screen.setPenWidth(5);
Brain.Screen.drawCircle(100, 70, 20);

Snímek obrazovky IQ Brain se dvěma bílými kruhy vytištěnými v dolní polovině obrazovky. Kruh vlevo má užší okraj než kruh vpravo.

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
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(50, 50, 10, 20);

Snímek obrazovky IQ Brain se dvěma malými obdélníky nakreslenými v dolní polovině obrazovky. Obdélník vlevo je modrý a obdélník vpravo bílý.

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 circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);

Snímek obrazovky IQ Brain s jasně žlutým kruhem s tenkým bílým okrajem nakresleným v levé polovině 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 159.

y

int32_t

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

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 159.

y

int

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

width

int

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

height

int

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

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 IQ Brain (2. generace) s bílým textem „Cut of“ (Vyříznutý) a 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 IQ (2. generace) 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 159.

y

int

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

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 one pixel at the center 
// of the screen
Brain.Screen.drawPixel(80, 50);

Snímek obrazovky IQ Brain s malou bílou tečkou uprostřed obrazovky.

drawLine#

Nakreslí přímku spojující dva body na obrazovce IQ (2. generace) 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 159.

y1

int

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

x2

int

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

y2

int

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

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, 159, 107);

Snímek obrazovky IQ Brain s bílou diagonální čarou nakreslenou z levého horního rohu do pravého dolního rohu.

drawRectangle#

Nakreslí obdélník na obrazovce IQ (2. generace) 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 159.

y

int

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

width

int

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

height

int

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

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 red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, red);

Snímek obrazovky IQ Brain s velkým červeným obdélníkem s tenkým bílým okrajem nakresleným téměř uprostřed obrazovky.

drawCircle#

Nakreslí kruh na obrazovce IQ (2. generace) 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 159.

y

int

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

radius

int

Poloměr kruhu, zadaný jako celé číslo od 0 do 107 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 green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, green);

Snímek obrazovky IQ Brain s plným zeleným kruhem s tenkým bílým okrajem uprostřed obrazovky.

drawImageFromFile#

Nakreslí obrázek na obrazovku IQ (2. generace) 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 159, na které bude vykreslen levý okraj obrázku.

y

int

Souřadnice y v pixelech od 0 do 107, 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 jsou velikost obrazovky Brain (160 x 108 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();