Ekran#

Wstęp#

Klasa ekranu screen pochodzi z klasy bazowej brain. Kontroluje ona sposób, w jaki V5 Brain wyświetla tekst, liczby i grafikę na ekranie dotykowym oraz jak reaguje na dotyk.

Domyślnie czcionka używana do drukowania w Brain to mały, monospaced, składający się z 12 wierszy i 48 kolumn.

Do rysowania rozdzielczość mózgu wynosi 480 x 240 pikseli.

Ekran V5 Brain z czerwonymi liniami siatki pokazującymi układ 12 wierszy i 48 kolumn w sumie. Wymiary pikseli to 479 szerokości i 239 wysokości. Lewy górny róg zaczyna się na (0,0) pikseli i wierszu 1, kolumnie 1, a prawy dolny róg kończy się na (479, 239) pikseli i wierszu 12, kolumnie 48.

Dostęp#

Dostęp do klasy ekranu screen jest możliwy poprzez:

Brain.Screen

Notatki#

  • Obiekt ekranu screen jest dostarczany przez Mózg. Nie jest tworzony bezpośrednio.

  • Projekty korzystają z pojedynczego globalnego obiektu Brain , więc funkcje ekranu są wywoływane za pomocą Brain.Screen.

Przykład#

/* 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!");

Funkcje członkowskie#

Klasa ekranu screen zawiera następujące funkcje członkowskie:

  • print — Drukuje sformatowany tekst, liczby lub wartości logiczne na ekranie Brain.

  • setCursor — Przesuwa kursor tekstowy do określonego wiersza i kolumny.

  • newLine — Czyści resztę bieżącego wiersza i przenosi kursor do następnego wiersza.

  • clearLine — Czyści resztę bieżącego wiersza lub czyści określony wiersz.

  • row — Zwraca wiersz, w którym zostanie wydrukowany tekst.

  • column — Zwraca kolumnę, w której zostanie wydrukowany tekst.

  • getStringHeight — Zwraca wysokość ciągu w pikselach, używając bieżącej czcionki.

  • getStringWidth — Zwraca szerokość ciągu w pikselach, używając bieżącej czcionki.

  • printAt — Drukuje sformatowany tekst w położeniu piksela x, y.

  • clearScreen — Usuwa wszystkie rysunki i tekst z ekranu mózgu.

  • setFont — Ustawia czcionkę używaną do drukowania na ekranie.

  • setPenWidth — Ustawia grubość rysowanych linii i konturów kształtów.

  • setPenColor — Ustawia kolor tekstu, pikseli, linii i konturów kształtów.

  • setFillColor — Ustawia kolor wypełnienia dla narysowanych kształtów i drukowanych teł tekstowych.

  • setOrigin — Ustawia początek używany dla współrzędnych ekranu.

  • setClipRegion — Ogranicza wyjście ekranowe do prostokątnego obszaru.

  • drawPixel — Rysuje jeden piksel w podanym współrzędnym.

  • drawLine — Rysuje linię między dwoma punktami.

  • drawRectangle — Rysuje prostokąt w położeniu x, y o określonym rozmiarze.

  • drawCircle — Rysuje okrąg w położeniu x, y o określonym promieniu.

  • drawImageFromFile — Rysuje obraz z pliku karty SD na ekranie.

  • render — Włącza podwójne buforowanie lub renderuje bufor tylny na ekranie.

  • pressing — Zwraca informację, czy ekran jest aktualnie naciskany.

  • xPosition — Zwraca współrzędną x ostatniego naciśnięcia ekranu.

  • yPosition — Zwraca współrzędną y ostatniego naciśnięcia ekranu.

  • naciśniętopressed — Rejestruje funkcję wywołania zwrotnego, która ma zostać uruchomiona po naciśnięciu ekranu.

  • released — Rejestruje funkcję wywołania zwrotnego, która zostanie uruchomiona po zwolnieniu ekranu po naciśnięciu.

Przed wywołaniem jakiejkolwiek funkcji członkowskiej screen należy utworzyć instancję brain , jak pokazano poniżej:

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

print#

Wyświetla tekst, liczby lub wartości logiczne na ekranie V5 Brain.

Available Functions

1 — Drukuje sformatowany tekst przy użyciu literałów ciągu lub ciągów tylko do odczytu w stylu języka C.

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

2 — Drukuje sformatowany tekst przy użyciu modyfikowalnych tablic znaków.

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

Parameters

Parametr

Typ

Opis

format

const char*

Ciąg formatujący podany jako literał ciągu lub ciąg tylko do odczytu w stylu języka C (na przykład “Score: %d”).

format

char*

Ciąg formatujący podany jako modyfikowalna tablica znaków.

…

Jedna lub więcej dodatkowych wartości wstawianych do ciągu formatującego, rozdzielonych przecinkami.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Wyjście rozpoczyna się od bieżącej pozycji kursora na ekranie.

  • W tekście drukowanym używana jest aktualna czcionka ekranowa .

  • Tekst drukowany używa aktualnego koloru pióra .

  • Tekst wydrukowany z opcją print jest zawsze drukowany z tłem, a kolor tła jest określany przez bieżący kolor wypełnienia

  • W przypadku używania ciągu formatującego liczba i typy przekazywanych wartości muszą odpowiadać specyfikatorom formatu w ciągu.

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

Zrzut ekranu mózgu V5 z napisem Hello, Robot! wydrukowanym w lewym górnym rogu ekranu białym tekstem.

setCursor#

Przesuwa kursor do określonego wiersza i kolumny na ekranie V5 Brain. Następne wywołanie print rozpocznie drukowanie w tym miejscu.

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

Parameters

Parametr

Typ

Opis

row

int32_t

Wiersz, do którego należy przenieść kursor.

col

int32_t

Kolumna, do której należy przenieść kursor.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Ma wpływ na miejsce rozpoczęcia kolejnego wydruku tekstu podczas używania polecenia print.

  • Wiersze i kolumny oparte są na aktualnie ustawionej czcionce ekranowej.

  • Domyślna czcionka (mono20) używa 12 wierszy i 48 kolumn.

  • Wywołanie setCursor ma wpływ tylko na pozycję późniejszego wyjścia tekstu.

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

Zrzut ekranu mózgu V5 pokazujący wiersz 3, kolumnę 12 wydrukowane w górnej części, blisko środka ekranu, w tym miejscu.

newLine#

Przesuwa kursor na początek następnego wiersza na ekranie Mózgu.

Available Functions
void newLine();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Jeżeli kursor znajduje się w środku zdania, polecenie newLine wyczyści resztę wiersza za kursorem przed przejściem do następnego wiersza.

  • Po wywołaniu newLinekursor zostaje umieszczony w pierwszej kolumnie następnego wiersza.

  • Pozycję kursora i numerację wierszy ustawia się za pomocą setCursor.

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

Zrzut ekranu V5 Brain z dwiema liniami białego tekstu w lewym górnym rogu. Górna linia to Linia 1, a druga linia bezpośrednio pod nią to Linia 2.

clearLine#

Czyści tekst z wiersza na ekranie V5 Brain.

Available Functions

1 — Usuwa resztę bieżącego wiersza z pozycji kursora.

void clearLine();

2 — Czyści określony wiersz, używając aktualnie skonfigurowanego koloru wypełnienia.

void clearLine(
    int number );

3 — Czyści określony wiersz, używając obiektu predefiniowanego lub niestandardowego koloru.

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

4 — Czyści określony wiersz, używając szesnastkowej wartości koloru.

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

5 — Czyści określony wiersz przy użyciu wartości odcienia.

void clearLine(
    int number,
    int hue );

Parameters

Parametr

Typ

Opis

number

int

Numer wiersza do wyczyszczenia. Numeracja wierszy zaczyna się od 1.

color

const color&

Czyści wiersz, używając obiektu color Do wstępnie zdefiniowanych kolorów należą:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Można również użyć niestandardowego obiektu koloru.

color

const char*

Czyści wiersz przy użyciu szesnastkowej wartości koloru (na przykład “#000000”).

hue

int

Czyści wiersz, używając wartości odcienia całkowitej z zakresu 0–359, reprezentującej stopnie na kole kolorów.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Wyczyszczenie wiersza nie zmienia aktualnej pozycji kursora.

  • Pozycję kursora i numerację wierszy ustawia się za pomocą setCursor.

  • Wartość parametru odcienia hue oparta jest na kole kolorów, jak pokazano poniżej, gdzie wartości reprezentują stopnie na kole (na przykład czerwony w pobliżu 0°, zielony w pobliżu 120°, a niebieski w pobliżu 240°).

Koło kolorów pokazujące zakres kolorów od 0 do 359, gdzie czerwony to 0, zielony to 120, a niebieski to 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#

Zwraca wiersz, w którym tekst będzie drukowany na ekranie V5 Brain.

Available Functions
int32_t row();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Zwraca wartość int32_t reprezentującą wiersz, w którym zostanie wydrukowany tekst.

Numeracja wierszy zaczyna się od 1.

Notes
  • Pozycja kursora opiera się na bieżącej czcionce ekranowej .

  • Zwrócona wartość wskazuje, gdzie pojawi się następny wydruk.

  • Wartość wiersza zmienia się, gdy drukowany jest tekst lub gdy wywoływana jest funkcja setCursor.

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

Zrzut ekranu V5 Brain przedstawiający tekst 3 w kolorze białym w lewym górnym kwadrancie ekranu, w wierszu 3 i kolumnie 12.

column#

Zwraca kolumnę, w której tekst będzie drukowany na ekranie V5 Brain.

Available Functions
int32_t column();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Zwraca wartość int32_t reprezentującą kolumnę, w której zostanie wydrukowany tekst.

Numeracja kolumn zaczyna się od 1.

Notes
  • Pozycja kursora opiera się na bieżącej czcionce ekranowej .

  • Zwrócona wartość wskazuje, gdzie pojawi się następny wydruk.

  • Wartość kolumny zmienia się, gdy drukowany jest tekst lub gdy wywołana jest funkcja setCursor.

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

Zrzut ekranu V5 Brain pokazujący tekst 15 w kolorze białym w lewym górnym kwadrancie ekranu, w wierszu 3, kolumnie 15.

getStringHeight#

Zwraca wysokość ciągu znaków w pikselach po wyświetleniu na ekranie V5 Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parametr

Typ

Opis

cstr

const char*

Tekst do zmierzenia, podany jako ciąg znaków w stylu C (na przykład “Hello”).

Return Values

Zwraca wartość int32_t reprezentującą wysokość ciągu w pikselach po wyświetleniu na ekranie Brain.

Notes
  • Zwracana wysokość zależy od aktualnie wybranej czcionki ekranowej

  • Funkcja ta mierzy ciąg znaków bez wyświetlania go na ekranie.

  • Zwrócona wysokość odzwierciedla sposób, w jaki ciąg będzie wyglądał po wydrukowaniu.

getStringWidth#

Zwraca szerokość ciągu znaków (w pikselach) po wyświetleniu na ekranie V5 Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parametr

Typ

Opis

cstr

const char*

Tekst do zmierzenia, podany jako ciąg znaków w stylu C (na przykład “Hello”).

Return Values

Zwraca wartość int32_t reprezentującą szerokość ciągu w pikselach po wyświetleniu na ekranie Brain.

Notes
  • Zwracana szerokość zależy od aktualnie wybranej czcionki ekranowej

  • Funkcja ta mierzy ciąg znaków bez wyświetlania go na ekranie.

  • Zwrócona szerokość odzwierciedla wygląd ciągu znaków po wydrukowaniu.

printAt#

Drukuje tekst, liczby lub wartości logiczne w określonych współrzędnych na ekranie V5 Brain.

Available Functions

1 — Drukuje sformatowany wynik w określonej lokalizacji piksela.

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

2 — Drukuje sformatowany wynik w określonym miejscu piksela i ustawia, czy tło tekstu ma być nieprzezroczyste czy przezroczyste.

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

Parameters

Parametr

Typ

Opis

x

int32_t

Pozycja x, w której należy drukować, odniesiona do początku ekranu.

y

int32_t

Pozycja y, w której należy drukować, względem początku ekranu.

bOpaque

bool

Steruje, czy drukowany tekst ma być rysowany nieprzezroczysty czy przezroczysty:

  • true — Tło drukowanego tekstu jest wypełniane przy użyciu bieżącego koloru wypełnienia.
  • false — Tekst jest rysowany przezroczyście, a tło nie jest wypełnione.

format

const char*

Ciąg formatujący, który kontroluje, co jest drukowane na ekranie (na przykład “Score: %d”).

…

Jedna lub więcej dodatkowych wartości wstawianych do ciągu formatującego, rozdzielonych przecinkami.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Współrzędne x i y odnoszą się do bieżącego początku ekranu i można je zmienić za pomocą polecenia setOrigin.

  • W tekście drukowanym używana jest aktualna czcionka ekranowa .

  • Tekst drukowany używa aktualnego koloru pióra .

  • W przypadku używania ciągu formatującego liczba i typy przekazywanych wartości muszą odpowiadać specyfikatorom formatu w ciągu.

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

Zrzut ekranu V5 Brain z białym tekstem, na którym widnieje napis Center, umieszczony na środku ekranu.

clearScreen#

Usuwa wszystkie rysunki i tekst z ekranu mózgu i resetuje pozycję kursora do wiersza 1, kolumny 1.

Available Functions

1 — Wyczyść ekran do czerni.

void clearScreen();

2 — Czyści ekran, używając zdefiniowanego wstępnie obiektu lub obiektu niestandardowego koloru.

void clearScreen(
    const color& color );

3 — Czyści ekran, używając szesnastkowej wartości koloru.

void clearScreen(
    const char* color );

4 — Czyści ekran, używając wartości odcienia.

void clearScreen(
    int hue );

Parameters

Parametr

Typ

Opis

color

const color&

Czyści ekran, używając obiektu color koloru. Do predefiniowanych kolorów należą:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Można również użyć niestandardowego obiektu koloru.

color

const char*

Czyści ekran, używając szesnastkowej wartości koloru przedstawionej jako ciąg znaków (na przykład “#000000”).

hue

int

Czyści ekran, używając wartości odcienia całkowitej z zakresu 0–359, reprezentującej stopnie na kole kolorów.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Wartość parametru odcienia hue oparta jest na kole kolorów, jak pokazano poniżej, gdzie wartości reprezentują stopnie na kole (na przykład czerwony w pobliżu 0°, zielony w pobliżu 120°, a niebieski w pobliżu 240°).

Koło kolorów pokazujące zakres kolorów od 0 do 359, gdzie czerwony to 0, zielony to 120, a niebieski to 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);

Zrzut ekranu V5 Brain z całym obszarem do wydruku w kolorze jasnoniebieskim.

setFont#

Ustawia czcionkę używaną do wyświetlania tekstu na ekranie V5 Brain.

Steruje czcionką stosowaną do późniejszego wydruku tekstu podczas korzystania z funkcji tekstu ekranowego, takich jak print.

Available Functions
void setFont(
  fontType font );

Parameters

Parametr

Typ

Opis

font

fontType

Ustawia czcionkę na jedną z następujących:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Może drukować znaki chińskie, japońskie i koreańskie.
    • Uproszczony chiński — widoczny do kolumny 28.
    • Tradycyjny chiński — widoczny do kolumny 28.
    • Japoński (Kanji) — widoczny do kolumny 28.
    • Koreański (Hangul) — widoczny do kolumny 30.
Opcje te pokazano poniżej.

! Zrzut ekranu z ekranu V5 Brain z cyframi i literami wydrukowanymi na biało w lewym górnym rogu czcionką MONO 12. Widnieje na nim litera A w jednym wierszu, zajmującym około jednej czwartej szerokości ekranu. W lewym dolnym rogu widnieje liczba kolumn i 20 wierszy.
mono12

Ten sam obrazek co poprzedni, z czcionką Mono 15. Przedstawia A-Z w jednym wierszu, na prawie połowie szerokości ekranu. W lewym dolnym rogu widnieje 68 kolumn i 16 wierszy.
mono15

Ten sam obrazek co poprzedni, z czcionką Mono 20. Przedstawia A-Z w jednym wierszu, na prawie dwóch trzecich szerokości ekranu. W lewym dolnym rogu widnieje 48 kolumn i 12 wierszy.
mono20

Ten sam obrazek co poprzedni, z czcionką Mono 30. Przedstawia A-Z w jednym wierszu, na prawie całej szerokości ekranu. W lewym dolnym rogu widnieje liczba 32 kolumn i 8 wierszy.
mono30

Ten sam obrazek co poprzedni, z czcionką Mono 40. Przedstawia AX w jednym wierszu, rozciągającym się na całą szerokość ekranu. W lewym dolnym rogu widnieje 24 kolumny i 6 wierszy.
mono40

Ten sam obraz co poprzedni, z czcionką Mono 60. Przedstawia AP w jednym wierszu, rozciągającym się na całą szerokość ekranu. Na dole wskazuje 16 kolumn i 4 wiersze.
mono60

Ten sam obraz co poprzedni, z czcionką Prop 20. Przedstawia A-Z w jednym wierszu, na prawie dwóch trzecich szerokości ekranu. W lewym dolnym rogu widnieje 48 kolumn i 12 wierszy.
prop20

Ten sam obraz co poprzedni, z czcionką Prop 30. Przedstawia A-Z w jednym wierszu, zajmującym niemal całą szerokość ekranu. W lewym dolnym rogu widnieje liczba 32 kolumn i 8 wierszy.
prop30

Ten sam obraz co poprzedni, z czcionką Prop 40. AU jest wyświetlane w jednym wierszu, na całej szerokości ekranu. W lewym dolnym rogu widnieje 24 kolumny i 6 wierszy.
prop40

Ten sam obraz co poprzedni, z czcionką Prop 60. Przedstawia AN w jednym wierszu, rozciągającym się na całą szerokość ekranu. Na dole widnieje 15 kolumn i 4 wiersze.
prop60

Ten sam obrazek co poprzedni, z czcionką CJK 16. W jednej linii, zajmującej około dwóch trzecich ekranu, widać A-Z. W kolejnych liniach widnieje kod VEX w języku chińskim uproszczonym, chińskim tradycyjnym, koreańskim i japońskim. Na dole widnieje 43 kolumny i 12 wierszy.
fontType::cjk16

Return Values

Ta funkcja nie zwraca wartości.

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

Zrzut ekranu V5 Brain pokazujący biały tekst z napisem VEX w większej czcionce niż domyślna, w lewym górnym rogu.


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

Zrzut ekranu V5 Brain pokazujący tekst „VEX机器人” w czcionce chińskiej w lewym górnym rogu.

setPenWidth#

Ustawia grubość rysowanych linii i konturów kształtów.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parametr

Typ

Opis

width

uint32_t

Szerokość pióra w pikselach od 0 do 32.

Return Values

Ta funkcja nie zwraca wartości.

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

Zrzut ekranu V5 Brain przedstawiający prostokąt z grubymi obramowaniami wydrukowany w lewym górnym kwadrancie ekranu.

setPenColor#

Ustawia kolor tekstu, pikseli, linii i konturów kształtów.

Available Functions

1 — Ustawia kolor pióra za pomocą zdefiniowanego wstępnie obiektu lub obiektu niestandardowego koloru.

void setPenColor(
    const color& color );

2 — Ustawia kolor pióra, używając szesnastkowej wartości koloru.

void setPenColor(
    const char* color );

3 — Ustawia kolor pióra za pomocą wartości odcienia.

void setPenColor(
    int hue );

Parameters

Parametr

Typ

Opis

color

const color&

Ustawia kolor pióra, używając obiektu color Predefiniowane kolory obejmują:

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

color

const char*

Ustawia kolor pióra, używając szesnastkowej wartości koloru reprezentowanej jako ciąg (na przykład “#FF0000”).

hue

int

Ustawia kolor pióra, używając wartości odcienia całkowitej z zakresu 0–359, reprezentującej stopnie na kole kolorów (na przykład 0 to czerwony, 120 to zielony, a 240 to niebieski).

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Domyślny kolor pióra na początku projektu to white.

  • Kolor pióra jest używany do rysowania konturów kształtów (np. za pomocą drawCircle lub drawRectangle), tekstu i wyników liczbowych (za pomocą print i printAt) oraz pojedynczych pikseli rysowanych za pomocą drawPixel.

  • Wartość parametru odcienia hue oparta jest na kole kolorów, jak pokazano poniżej, gdzie wartości reprezentują stopnie na kole (na przykład czerwony w pobliżu 0°, zielony w pobliżu 120°, a niebieski w pobliżu 240°).

Koło kolorów pokazujące zakres kolorów od 0 do 359, gdzie czerwony to 0, zielony to 120, a niebieski to 240.

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

Zrzut ekranu V5 Brain przedstawiający prostokąt narysowany na pomarańczowo w lewym górnym kwadrancie ekranu.

setFillColor#

Ustawia kolor wypełnienia używany podczas rysowania kształtów.

Available Functions

1 — Ustawia kolor wypełnienia przy użyciu zdefiniowanego wstępnie lub niestandardowego koloru.

void setFillColor(
    const color& color );

2 — Ustawia kolor wypełnienia, używając szesnastkowej wartości koloru.

void setFillColor(
    const char* color );

3 — Ustawia kolor wypełnienia za pomocą wartości odcienia.

void setFillColor(
    int hue );

Parameters

Parametr

Typ

Opis

color

const color&

Ustawia kolor wypełnienia, używając obiektu color Predefiniowane kolory obejmują:

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

color

const char*

Ustawia kolor wypełnienia, używając szesnastkowej wartości koloru reprezentowanej jako ciąg (na przykład “#00FF00”).

hue

int

Ustawia kolor wypełnienia, używając wartości odcienia całkowitej z zakresu 0–359, reprezentującej stopnie na kole kolorów (na przykład 0 to czerwony, 120 to zielony, a 240 to niebieski).

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Domyślny kolor wypełnienia na początku projektu to black.

  • Kolor wypełnienia jest używany do wnętrza kształtów (na przykład w przypadku drawCircle lub drawRectangle).

  • Kolor wypełnienia jest używany jako kolor tła dla drukowanego tekstu (np. w przypadku print i printAt).

    • Jeżeli w przypadku drukowanego tekstu zostanie użyte ustawienie transparent , tło będzie black.

  • Wartość parametru odcienia hue oparta jest na kole kolorów, jak pokazano poniżej, gdzie wartości reprezentują stopnie na kole (na przykład czerwony w pobliżu 0°, zielony w pobliżu 120°, a niebieski w pobliżu 240°).

Koło kolorów pokazujące zakres kolorów od 0 do 359, gdzie czerwony to 0, zielony to 120, a niebieski to 240.

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

Zrzut ekranu V5 Brain przedstawiający prostokąt wypełniony kolorem fioletowym w lewym dolnym kwadrancie ekranu.

setOrigin#

Ustawia punkt początkowy używany do rysowania i drukowania na podstawie współrzędnych na ekranie Brain.

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

Parameters

Parametr

Typ

Opis

x

int32_t

Pozycja x początku układu współrzędnych względem lewego górnego rogu ekranu mózgu od 0 do 479.

y

int32_t

Pozycja y punktu początkowego względem lewego górnego rogu ekranu mózgu od 0 do 239.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Domyślnym punktem początkowym jest lewy górny róg ekranu o współrzędnych (0, 0).

  • Początek ma zastosowanie do funkcji współrzędnych, takich jak drawLine, drawRectangle, drawCircle i printAt.

  • Pochodzenie pozostaje aktualne do momentu kolejnej zmiany lub zresetowania projektu.

setClipRegion#

Definiuje prostokątny obszar na ekranie, w którym będą wyświetlane wszystkie rysunki i tekst. Zawartość spoza tego obszaru nie będzie wyświetlana.

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

Parameters

Parametr

Typ

Opis

x

int

Współrzędna x lewego górnego rogu obszaru klipu, podana jako liczba całkowita od 0 do 479.

y

int

Współrzędna y lewego górnego rogu obszaru klipu, podana jako liczba całkowita od 0 do 239.

width

int

Szerokość obszaru przycinania w pikselach, podana jako liczba całkowita od 0 do 479.

height

int

Wysokość obszaru klipu w pikselach, podana jako liczba całkowita od 0 do 239.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Funkcje rysowania są nadal wykonywane, nawet jeśli znajdują się poza obszarem przycinania, ale widoczna jest tylko część wewnątrz obszaru.

  • Współrzędne x i y odnoszą się do bieżącego początku ekranu i można je zmienić za pomocą polecenia setOrigin.

  • Obszar przycinania dotyczy tylko bieżącego wątku.

  • Ustawienie nowego obszaru klipu powoduje zastąpienie każdego wcześniej ustawionego obszaru klipu dla bieżącego wątku.

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!");

Zrzut ekranu mózgu V5 z białym tekstem, na którym widnieje napis Cut of (Wytnij) oraz jednolitym czerwonym kwadratem bezpośrednio pod nim w lewym górnym kwadrancie, odzwierciedlającym to, co jest drukowane w obszarze klipu.

drawPixel#

Rysuje jeden piksel na ekranie V5 Brain w wybranym położeniu pikseli x i y.

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

Parameters

Parametr

Typ

Opis

x

int

Współrzędna x, w której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 479.

y

int

Współrzędna y, na której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 239.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Piksele są rysowane przy użyciu bieżącego zestawu kolorów pióra za pomocą setPenColor.

  • Współrzędne x i y odnoszą się do bieżącego początku ekranu, który można ustawić za pomocą setOrigin.

  • Jeżeli określona lokalizacja piksela znajduje się poza granicami ekranu, piksel nie zostanie narysowany.

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

Zrzut ekranu V5 Brain przedstawiający zbiór pikseli oznaczających rogi kwadratu znajdującego się w pobliżu środka ekranu.

drawLine#

Rysuje linię prostą łączącą dwa punkty na ekranie V5 Brain.

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

Parameters

Parametr

Typ

Opis

x1

int

Początkowa współrzędna x linii podana jako liczba całkowita od 0 do 479.

y1

int

Początkowa współrzędna y linii, podana jako liczba całkowita od 0 do 239.

x2

int

Końcowa współrzędna x linii, podana jako liczba całkowita od 0 do 479.

y2

int

Końcowa współrzędna y linii, podana jako liczba całkowita od 0 do 239.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Linie rysuje się przy użyciu bieżącego koloru pióra ustawionego za pomocą setPenColor.

  • Szerokość linii jest określana na podstawie aktualnej szerokości pióra ustawionej za pomocą setPenWidth.

  • Współrzędne x i y odnoszą się do bieżącego początku ekranu, który można ustawić za pomocą setOrigin.

  • Jeżeli jakakolwiek część linii znajduje się poza granicami ekranu, rysowana jest tylko widoczna część.

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

Zrzut ekranu V5 Brain pokazuje cienką ukośną linię biegnącą przez środek, od lewego górnego rogu do prawego dolnego rogu.

drawRectangle#

Rysuje prostokąt na ekranie V5 Brain w określonym położeniu i rozmiarze.

Available Functions

1 — Rysuje i wypełnia prostokąt przy użyciu aktualnie skonfigurowanego koloru wypełnienia.

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

2 — Rysuje i wypełnia prostokąt przy użyciu zdefiniowanego wstępnie obiektu lub obiektu niestandardowego koloru.

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

3 — Rysuje i wypełnia prostokąt przy użyciu szesnastkowej wartości koloru.

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

4 — Rysuje i wypełnia prostokąt przy użyciu wartości odcienia.

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

Parameters

Parametr

Typ

Opis

x

int

Współrzędna x lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 479.

y

int

Współrzędna y lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 239.

width

int

Szerokość prostokąta, podana jako liczba całkowita od 0 do 479.

height

int

Wysokość prostokąta podana jako liczba całkowita od 0 do 239.

color

const color&

Wypełnia prostokąt, używając obiektu o kolorze color Do predefiniowanych kolorów należą:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Można również użyć niestandardowego obiektu koloru.

color

const char*

Wypełnia prostokąt, używając szesnastkowej wartości koloru (na przykład “#FF0000”).

hue

int

Wypełnia prostokąt, używając wartości odcienia z zakresu 0–359.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Kontur prostokąta jest rysowany przy użyciu bieżącego koloru pióra ustawionego za pomocą setPenColor.

  • Grubość konturu jest określana na podstawie aktualnej szerokości pióra ustawionej za pomocą setPenWidth.

  • Jeżeli nie podano parametru color , wnętrze prostokąta wypełniane jest przy użyciu bieżącego koloru wypełnienia ustawionego za pomocą setFillColor.

  • Współrzędne x i y odnoszą się do bieżącego początku ekranu i można je zmienić za pomocą polecenia setOrigin.

  • Jeżeli jakakolwiek część prostokąta znajduje się poza granicami ekranu, rysowana jest tylko widoczna część.

  • Wartość parametru odcienia hue oparta jest na kole kolorów, jak pokazano poniżej, gdzie wartości reprezentują stopnie na kole (na przykład czerwony w pobliżu 0°, zielony w pobliżu 120°, a niebieski w pobliżu 240°).

Koło kolorów pokazujące zakres kolorów od 0 do 359, gdzie czerwony to 0, zielony to 120, a niebieski to 240.

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

Zrzut ekranu mózgu V5 pokazuje prostokąt z cienką białą obwódką wydrukowany w lewym górnym kwadrancie.

drawCircle#

Rysuje okrąg na ekranie V5 Brain w określonym miejscu i o określonym promieniu.

Available Functions

1 — Rysuje i wypełnia okrąg, używając aktualnie skonfigurowanego koloru wypełnienia.

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

2 — Rysuje i wypełnia okrąg przy użyciu zdefiniowanego wcześniej obiektu lub obiektu niestandardowego koloru.

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

3 — Rysuje i wypełnia okrąg przy użyciu szesnastkowej wartości koloru.

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

4 — Rysuje i wypełnia okrąg przy użyciu wartości odcienia.

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

Parameters

Parametr

Typ

Opis

x

int

Współrzędna x środka okręgu, podana jako liczba całkowita od 0 do 479.

y

int

Współrzędna y środka okręgu, podana jako liczba całkowita od 0 do 239.

radius

int

Promień okręgu podany jako liczba całkowita od 0 do 239 pikseli.

color

const color&

Wypełnia okrąg, używając obiektu o kolorze color Predefiniowane kolory obejmują:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Można również użyć niestandardowego obiektu koloru.

color

const char*

Wypełnia okrąg, używając szesnastkowej wartości koloru (na przykład “#FF0000”).

hue

int

Wypełnia okrąg, używając wartości odcienia z zakresu 0–359.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Kontur okręgu jest rysowany przy użyciu bieżącego koloru pióra ustawionego za pomocą setPenColor.

  • Grubość konturu jest określana na podstawie aktualnej szerokości pióra ustawionej za pomocą setPenWidth.

  • Jeżeli nie podano parametru color , wnętrze okręgu jest wypełniane przy użyciu bieżącego zestawu kolorów wypełnienia za pomocą setFillColor.

  • Współrzędne x i y odnoszą się do bieżącego początku ekranu i można je zmienić za pomocą polecenia setOrigin.

  • Wartość parametru odcienia hue oparta jest na kole kolorów, jak pokazano poniżej, gdzie wartości reprezentują stopnie na kole (na przykład czerwony w pobliżu 0°, zielony w pobliżu 120°, a niebieski w pobliżu 240°).

Koło kolorów pokazujące zakres kolorów od 0 do 359, gdzie czerwony to 0, zielony to 120, a niebieski to 240.

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

Zrzut ekranu V5 Brain pokazuje okrąg z cienką białą obwódką narysowaną w środku.

drawImageFromFile#

Rysuje obraz na ekranie V5 Brain przy użyciu pliku obrazu zapisanego na karcie SD.

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

Parameters

Parametr

Typ

Opis

name

const char*

Nazwa pliku obrazu na karcie SD. Plik musi mieć rozszerzenie .bmp lub .png.

x

int

Współrzędna x (w pikselach od 0 do 479), na której zostanie narysowana lewa krawędź obrazu.

y

int

Współrzędna y (w pikselach od 0 do 239), na której zostanie narysowana górna krawędź obrazu.

Return Values

Zwraca wartość logiczną wskazującą, czy obraz został pomyślnie narysowany:

  • true — Obraz został pomyślnie załadowany i narysowany na ekranie.
  • false — Obraz nie mógł zostać narysowany (na przykład, jeśli plik nie istnieje lub jest nieprawidłowy).

Notes
  • Obsługiwane formaty obrazów to .bmp i .png.

  • Rozmiar pliku obrazu nie może przekraczać 512 KB.

    • Aby zminimalizować rozmiar pliku, zaleca się stosowanie 8-bitowego kodowania RLE.

  • Maksymalne obsługiwane wymiary obrazu to rozmiar ekranu Brain (około 479 x 239 pikseli).

  • Współrzędne x i y odnoszą się do bieżącego początku ekranu i można je zmienić za pomocą polecenia setOrigin.

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

render#

Włącza podwójne buforowanie ekranu Brain. Po wywołaniu, wszelkie funkcje rysowania (takie jak tekst, kształty czy obrazy) nie będą już wyświetlane od razu w całym projekcie. Zamiast tego aktualizacje będą widoczne dopiero po ponownym użyciu polecenia render Umożliwia to płynniejsze i bardziej kontrolowane aktualizacje ekranu, ale oznacza, że ​​nic nie będzie widoczne, dopóki polecenie render nie zostanie użyte.

Available Functions

1 — Włącza podwójne buforowanie lub renderuje bufor tylny na ekranie.

bool render();

2 — Renderuje bufor tylny na ekranie, zapewniając kontrolę nad zachowaniem synchronizacji pionowej i opcjonalnym wykonywaniem harmonogramu.

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

Parameters

Parametr

Typ

Opis

bVsyncWait

bool

​

  • true — Poczekaj na odświeżenie ekranu w pionie przed renderowaniem, aby zmniejszyć rozrywanie obrazu.
  • false — Nie czekaj na odświeżenie ekranu w pionie przed renderowaniem.

bRunScheduler

bool

Opcjonalnie.

  • true (domyślnie) — Zezwalaj na uruchamianie zadań w tle podczas oczekiwania na renderowanie.
  • false — Nie zezwalaj na uruchamianie zadań w tle podczas oczekiwania na renderowanie.

Return Values

Zwraca wartość logiczną wskazującą, czy zapisane w buforze rysunki zostały pomyślnie wyrenderowane na ekranie:

  • true — Rysunki zostały pomyślnie wyrenderowane na ekranie.
  • false — Rysunków nie udało się wyrenderować na ekranie.
  • Notes
    • Wywołanie polecenia render spowoduje, że w całym projekcie będzie wymagane użycie polecenia render.

    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#

Informuje, czy ekran V5 Brain jest aktualnie wciśnięty.

Available Functions
bool pressing();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Zwraca wartość logiczną wskazującą aktualny stan naciśnięcia ekranu:true — ekran jest aktualnie naciskany. lub false — ekran nie jest naciskany.

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#

Zwraca współrzędną x ostatniego naciśnięcia na ekranie V5 Brain.

Available Functions
int32_t xPosition();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Zwraca int32_t reprezentującą współrzędną x (w pikselach od 0 do 479) ostatniego naciśnięcia ekranu.

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#

Zwraca współrzędną y ostatniego naciśnięcia na ekranie V5 Brain.

Available Functions
int32_t yPosition();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Zwraca int32_t reprezentującą współrzędną y (w pikselach od 0 do 239) ostatniego naciśnięcia ekranu.

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#

Rejestruje funkcję, która ma zostać wywołana po naciśnięciu ekranu V5 Brain.

Available Functions

1 — Wywołuje funkcję po naciśnięciu ekranu.

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

2 — Wywołuje funkcję po naciśnięciu ekranu i przekazuje zdefiniowany przez użytkownika argument do funkcji wywołania zwrotnego.

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

Parameters

Parametr

Typ

Opis

callback

void (*)(void)

Funkcja wywoływana po naciśnięciu ekranu.

callback

void ()(void)

Funkcja wywoływana po naciśnięciu ekranu, która otrzymuje argument zdefiniowany przez użytkownika.

arg

void*

Wartość zdefiniowana przez użytkownika, przekazywana do funkcji wywołania zwrotnego po naciśnięciu ekranu.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Funkcja wywołania zwrotnego jest wykonywana za każdym razem, gdy zostanie naciśnięty ekran Brain.

  • Można zarejestrować tylko jedną funkcję wywołania zwrotnego na raz. Wywołanie pressed zastępują poprzednie wywołanie zwrotne.

  • Funkcja wywołania zwrotnego musi zwracać void.

Examples

Zdefiniuj funkcję wywołania zwrotnego (poza 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);
}

Zarejestruj wywołanie zwrotne wewnątrz 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#

Rejestruje funkcję, która ma zostać wywołana po zwolnieniu ekranu V5 Brain po naciśnięciu.

Available Functions

1 — Wywołuje funkcję po zwolnieniu ekranu po naciśnięciu.

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

2 — Wywołuje funkcję po zwolnieniu ekranu po jego naciśnięciu i przekazuje zdefiniowany przez użytkownika argument do funkcji wywołania zwrotnego.

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

Parameters

Parametr

Typ

Opis

callback

void (*)(void)

Funkcja wywoływana po zwolnieniu przycisku naciśnięcia ekranu.

callback

void ()(void)

Funkcja wywoływana po zwolnieniu przycisku na ekranie i odbierająca argument zdefiniowany przez użytkownika.

arg

void*

Zdefiniowana przez użytkownika wartość przekazywana do funkcji wywołania zwrotnego po zwolnieniu ekranu po naciśnięciu.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Funkcja wywołania zwrotnego jest wykonywana za każdym razem, gdy ekran Brain zostanie zwolniony po naciśnięciu.

  • Można zarejestrować tylko jedną funkcję wywołania zwrotnego na raz; wywołanie released zastępuje poprzednie wywołanie zwrotne.

  • Funkcja wywołania zwrotnego musi zwracać void.

Examples

Zdefiniuj funkcję wywołania zwrotnego (poza 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);
}

Zarejestruj wywołanie zwrotne wewnątrz 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);
  }
}