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.

Dostęp#
Dostęp do klasy ekranu screen jest możliwy poprzez:
Brain.Screen
Notatki#
Obiekt ekranu
screenjest 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ęto
pressed— 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 Functions1 — 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, ... );
Parameters2 — Drukuje sformatowany tekst przy użyciu modyfikowalnych tablic znaków.
void print( char* format, ... );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Ciąg formatujący podany jako literał ciągu lub ciąg tylko do odczytu w stylu języka C (na przykład |
|
|
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. |
Ta funkcja nie zwraca wartości.
NotesWyjście rozpoczyna się od bieżącej pozycji kursora na ekranie.
W tekście drukowanym używana jest aktualna czcionka ekranowa .
Tekst wydrukowany z opcją
printjest zawsze drukowany z tłem, a kolor tła jest określany przez bieżący kolor wypełnieniaW przypadku używania ciągu formatującego liczba i typy przekazywanych wartości muszą odpowiadać specyfikatorom formatu w ciągu.
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");

setCursor#
Przesuwa kursor do określonego wiersza i kolumny na ekranie V5 Brain. Następne wywołanie print rozpocznie drukowanie w tym miejscu.
void setCursor(
int32_t row,
int32_t col );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wiersz, do którego należy przenieść kursor. |
|
|
Kolumna, do której należy przenieść kursor. |
Ta funkcja nie zwraca wartości.
NotesMa 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
setCursorma wpływ tylko na pozycję późniejszego wyjścia tekstu.
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

newLine#
Przesuwa kursor na początek następnego wiersza na ekranie Mózgu.
Available Functionsvoid newLine();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesTa funkcja nie zwraca wartości.
NotesJeżeli kursor znajduje się w środku zdania, polecenie
newLinewyczyś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.
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

clearLine#
Czyści tekst z wiersza na ekranie V5 Brain.
Available Functions1 — 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 );
Parameters5 — Czyści określony wiersz przy użyciu wartości odcienia.
void clearLine( int number, int hue );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Numer wiersza do wyczyszczenia. Numeracja wierszy zaczyna się od |
|
|
Czyści wiersz, używając obiektu
|
|
|
Czyści wiersz przy użyciu szesnastkowej wartości koloru (na przykład |
|
|
Czyści wiersz, używając wartości odcienia całkowitej z zakresu |
Ta funkcja nie zwraca wartości.
NotesWyczyszczenie wiersza nie zmienia aktualnej pozycji kursora.
Pozycję kursora i numerację wierszy ustawia się za pomocą
setCursor.Wartość parametru odcienia
hueoparta 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°).

// 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 Functionsint32_t row();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesZwraca wartość int32_t reprezentującą wiersz, w którym zostanie wydrukowany tekst.
Numeracja wierszy zaczyna się od 1.
NotesZwrócona wartość wskazuje, gdzie pojawi się następny wydruk.
Wartość wiersza zmienia się, gdy drukowany jest tekst lub gdy wywoływana jest funkcja
setCursor.
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print(Brain.Screen.row());

column#
Zwraca kolumnę, w której tekst będzie drukowany na ekranie V5 Brain.
Available Functionsint32_t column();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesZwraca wartość int32_t reprezentującą kolumnę, w której zostanie wydrukowany tekst.
Numeracja kolumn zaczyna się od 1.
NotesZwrócona wartość wskazuje, gdzie pojawi się następny wydruk.
Wartość kolumny zmienia się, gdy drukowany jest tekst lub gdy wywołana jest funkcja
setCursor.
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

getStringHeight#
Zwraca wysokość ciągu znaków w pikselach po wyświetleniu na ekranie V5 Brain.
Available Functionsint32_t getStringHeight(
const char* cstr );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Tekst do zmierzenia, podany jako ciąg znaków w stylu C (na przykład |
Zwraca wartość int32_t reprezentującą wysokość ciągu w pikselach po wyświetleniu na ekranie Brain.
getStringWidth#
Zwraca szerokość ciągu znaków (w pikselach) po wyświetleniu na ekranie V5 Brain.
Available Functionsint32_t getStringWidth(
const char* cstr );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Tekst do zmierzenia, podany jako ciąg znaków w stylu C (na przykład |
Zwraca wartość int32_t reprezentującą szerokość ciągu w pikselach po wyświetleniu na ekranie Brain.
printAt#
Drukuje tekst, liczby lub wartości logiczne w określonych współrzędnych na ekranie V5 Brain.
Available Functions1 — Drukuje sformatowany wynik w określonej lokalizacji piksela.
void printAt( int32_t x, int32_t y, const char* format, ... );
Parameters2 — 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, ... );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Pozycja x, w której należy drukować, odniesiona do początku ekranu. |
|
|
Pozycja y, w której należy drukować, względem początku ekranu. |
|
|
Steruje, czy drukowany tekst ma być rysowany nieprzezroczysty czy przezroczysty:
|
|
|
Ciąg formatujący, który kontroluje, co jest drukowane na ekranie (na przykład |
|
Jedna lub więcej dodatkowych wartości wstawianych do ciągu formatującego, rozdzielonych przecinkami. |
Ta funkcja nie zwraca wartości.
NotesWspółrzędne
xiyodnoszą się do bieżącego początku ekranu i można je zmienić za pomocą poleceniasetOrigin.W tekście drukowanym używana jest aktualna czcionka ekranowa .
W przypadku używania ciągu formatującego liczba i typy przekazywanych wartości muszą odpowiadać specyfikatorom formatu w ciągu.
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

clearScreen#
Usuwa wszystkie rysunki i tekst z ekranu mózgu i resetuje pozycję kursora do wiersza 1, kolumny 1.
Available Functions1 — 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 );
Parameters4 — Czyści ekran, używając wartości odcienia.
void clearScreen( int hue );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Czyści ekran, używając obiektu
|
|
|
Czyści ekran, używając szesnastkowej wartości koloru przedstawionej jako ciąg znaków (na przykład |
|
|
Czyści ekran, używając wartości odcienia całkowitej z zakresu |
Ta funkcja nie zwraca wartości.
NotesWartość parametru odcienia
hueoparta 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°).

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

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.
void setFont(
fontType font );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Ustawia czcionkę na jedną z następujących:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
Ta funkcja nie zwraca wartości.
Examples// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

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

setPenWidth#
Ustawia grubość rysowanych linii i konturów kształtów.
Available Functionsvoid setPenWidth(
uint32_t width );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Szerokość pióra w pikselach od 0 do 32. |
Ta funkcja nie zwraca wartości.
NotesSzerokość pióra dotyczy funkcji rysowania, takich jak
drawLine,drawRectangleidrawCircle.
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

setPenColor#
Ustawia kolor tekstu, pikseli, linii i konturów kształtów.
Available Functions1 — 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 );
Parameters3 — Ustawia kolor pióra za pomocą wartości odcienia.
void setPenColor( int hue );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Ustawia kolor pióra, używając obiektu
|
|
|
Ustawia kolor pióra, używając szesnastkowej wartości koloru reprezentowanej jako ciąg (na przykład |
|
|
Ustawia kolor pióra, używając wartości odcienia całkowitej z zakresu |
Ta funkcja nie zwraca wartości.
NotesDomyś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ą
drawCirclelubdrawRectangle), tekstu i wyników liczbowych (za pomocąprintiprintAt) oraz pojedynczych pikseli rysowanych za pomocądrawPixel.Wartość parametru odcienia
hueoparta 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°).

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

setFillColor#
Ustawia kolor wypełnienia używany podczas rysowania kształtów.
Available Functions1 — 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 );
Parameters3 — Ustawia kolor wypełnienia za pomocą wartości odcienia.
void setFillColor( int hue );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Ustawia kolor wypełnienia, używając obiektu
|
|
|
Ustawia kolor wypełnienia, używając szesnastkowej wartości koloru reprezentowanej jako ciąg (na przykład |
|
|
Ustawia kolor wypełnienia, używając wartości odcienia całkowitej z zakresu |
Ta funkcja nie zwraca wartości.
NotesDomyś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
drawCirclelubdrawRectangle).Kolor wypełnienia jest używany jako kolor tła dla drukowanego tekstu (np. w przypadku
printiprintAt).Jeżeli w przypadku drukowanego tekstu zostanie użyte ustawienie
transparent, tło będzieblack.
Wartość parametru odcienia
hueoparta 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°).

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

setOrigin#
Ustawia punkt początkowy używany do rysowania i drukowania na podstawie współrzędnych na ekranie Brain.
Available Functionsvoid setOrigin(
int32_t x,
int32_t y );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Pozycja x początku układu współrzędnych względem lewego górnego rogu ekranu mózgu od 0 do 479. |
|
|
Pozycja y punktu początkowego względem lewego górnego rogu ekranu mózgu od 0 do 239. |
Ta funkcja nie zwraca wartości.
NotesDomyś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,drawCircleiprintAt.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 Functionsvoid setClipRegion(
int x,
int y,
int width,
int height );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Współrzędna x lewego górnego rogu obszaru klipu, podana jako liczba całkowita od 0 do 479. |
|
|
Współrzędna y lewego górnego rogu obszaru klipu, podana jako liczba całkowita od 0 do 239. |
|
|
Szerokość obszaru przycinania w pikselach, podana jako liczba całkowita od 0 do 479. |
|
|
Wysokość obszaru klipu w pikselach, podana jako liczba całkowita od 0 do 239. |
Ta funkcja nie zwraca wartości.
NotesFunkcje rysowania są nadal wykonywane, nawet jeśli znajdują się poza obszarem przycinania, ale widoczna jest tylko część wewnątrz obszaru.
Współrzędne
xiyodnoszą się do bieżącego początku ekranu i można je zmienić za pomocą poleceniasetOrigin.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.
// 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!");

drawPixel#
Rysuje jeden piksel na ekranie V5 Brain w wybranym położeniu pikseli x i y.
Available Functionsvoid drawPixel(
int x,
int y );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Współrzędna x, w której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 479. |
|
|
Współrzędna y, na której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 239. |
Ta funkcja nie zwraca wartości.
NotesPiksele są rysowane przy użyciu bieżącego zestawu kolorów pióra za pomocą
setPenColor.Współrzędne
xiyodnoszą 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.
// 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);
![]()
drawLine#
Rysuje linię prostą łączącą dwa punkty na ekranie V5 Brain.
Available Functionsvoid drawLine(
int x1,
int y1,
int x2,
int y2 );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Początkowa współrzędna x linii podana jako liczba całkowita od 0 do 479. |
|
|
Początkowa współrzędna y linii, podana jako liczba całkowita od 0 do 239. |
|
|
Końcowa współrzędna x linii, podana jako liczba całkowita od 0 do 479. |
|
|
Końcowa współrzędna y linii, podana jako liczba całkowita od 0 do 239. |
Ta funkcja nie zwraca wartości.
NotesLinie 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
xiyodnoszą 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ęść.
// Draw a line from the top left to bottom right of the screen
Brain.Screen.drawLine(0, 0, 479, 239);

drawRectangle#
Rysuje prostokąt na ekranie V5 Brain w określonym położeniu i rozmiarze.
Available Functions1 — 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 );
Parameters4 — Rysuje i wypełnia prostokąt przy użyciu wartości odcienia.
void drawRectangle( int x, int y, int width, int height, int hue );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Współrzędna x lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 479. |
|
|
Współrzędna y lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 239. |
|
|
Szerokość prostokąta, podana jako liczba całkowita od 0 do 479. |
|
|
Wysokość prostokąta podana jako liczba całkowita od 0 do 239. |
|
|
Wypełnia prostokąt, używając obiektu o kolorze
|
|
|
Wypełnia prostokąt, używając szesnastkowej wartości koloru (na przykład |
|
|
Wypełnia prostokąt, używając wartości odcienia z zakresu |
Ta funkcja nie zwraca wartości.
NotesKontur 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
xiyodnoszą się do bieżącego początku ekranu i można je zmienić za pomocą poleceniasetOrigin.Jeżeli jakakolwiek część prostokąta znajduje się poza granicami ekranu, rysowana jest tylko widoczna część.
Wartość parametru odcienia
hueoparta 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°).

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

drawCircle#
Rysuje okrąg na ekranie V5 Brain w określonym miejscu i o określonym promieniu.
Available Functions1 — 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 );
Parameters4 — Rysuje i wypełnia okrąg przy użyciu wartości odcienia.
void drawCircle( int x, int y, int radius, int hue );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Współrzędna x środka okręgu, podana jako liczba całkowita od 0 do 479. |
|
|
Współrzędna y środka okręgu, podana jako liczba całkowita od 0 do 239. |
|
|
Promień okręgu podany jako liczba całkowita od 0 do 239 pikseli. |
|
|
Wypełnia okrąg, używając obiektu o kolorze
|
|
|
Wypełnia okrąg, używając szesnastkowej wartości koloru (na przykład |
|
|
Wypełnia okrąg, używając wartości odcienia z zakresu |
Ta funkcja nie zwraca wartości.
NotesKontur 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
xiyodnoszą się do bieżącego początku ekranu i można je zmienić za pomocą poleceniasetOrigin.Wartość parametru odcienia
hueoparta 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°).

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

drawImageFromFile#
Rysuje obraz na ekranie V5 Brain przy użyciu pliku obrazu zapisanego na karcie SD.
Available Functionsbool drawImageFromFile(
const char* name,
int x,
int y );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Nazwa pliku obrazu na karcie SD. Plik musi mieć rozszerzenie |
|
|
Współrzędna x (w pikselach od 0 do 479), na której zostanie narysowana lewa krawędź obrazu. |
|
|
Współrzędna y (w pikselach od 0 do 239), na której zostanie narysowana górna krawędź obrazu. |
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).
Obsługiwane formaty obrazów to
.bmpi.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
xiyodnoszą się do bieżącego początku ekranu i można je zmienić za pomocą poleceniasetOrigin.
// 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.
1 — Włącza podwójne buforowanie lub renderuje bufor tylny na ekranie.
bool render();
Parameters2 — Renderuje bufor tylny na ekranie, zapewniając kontrolę nad zachowaniem synchronizacji pionowej i opcjonalnym wykonywaniem harmonogramu.
bool render( bool bVsyncWait, bool bRunScheduler = true );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
|
|
|
Opcjonalnie.
|
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
renderspowoduje, że w całym projekcie będzie wymagane użycie poleceniarender.
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 Functionsbool pressing();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesZwraca wartość logiczną wskazującą aktualny stan naciśnięcia ekranu:true — ekran jest aktualnie naciskany. lub false — ekran nie jest naciskany.
// 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 Functionsint32_t xPosition();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesZwraca int32_t reprezentującą współrzędną x (w pikselach od 0 do 479) ostatniego naciśnięcia ekranu.
// 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 Functionsint32_t yPosition();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesZwraca int32_t reprezentującą współrzędną y (w pikselach od 0 do 239) ostatniego naciśnięcia ekranu.
// 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 Functions1 — Wywołuje funkcję po naciśnięciu ekranu.
void pressed( void (*callback)(void) );
Parameters2 — 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 );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Funkcja wywoływana po naciśnięciu ekranu. |
|
|
Funkcja wywoływana po naciśnięciu ekranu, która otrzymuje argument zdefiniowany przez użytkownika. |
|
|
Wartość zdefiniowana przez użytkownika, przekazywana do funkcji wywołania zwrotnego po naciśnięciu ekranu. |
Ta funkcja nie zwraca wartości.
NotesFunkcja 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
pressedzastępują poprzednie wywołanie zwrotne.Funkcja wywołania zwrotnego musi zwracać
void.
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 Functions1 — Wywołuje funkcję po zwolnieniu ekranu po naciśnięciu.
void released( void (*callback)(void) );
Parameters2 — 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 );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Funkcja wywoływana po zwolnieniu przycisku naciśnięcia ekranu. |
|
|
Funkcja wywoływana po zwolnieniu przycisku na ekranie i odbierająca argument zdefiniowany przez użytkownika. |
|
|
Zdefiniowana przez użytkownika wartość przekazywana do funkcji wywołania zwrotnego po zwolnieniu ekranu po naciśnięciu. |
Ta funkcja nie zwraca wartości.
NotesFunkcja 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
releasedzastępuje poprzednie wywołanie zwrotne.Funkcja wywołania zwrotnego musi zwracać
void.
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); } }









