Екран#

Вступ#

Клас screen походить від базового класу brain. Він керує тим, як V5 Brain відображає текст, числа та графіку на сенсорному екрані, а також як він реагує на сенсорне введення.

За замовчуванням шрифт для друку в Brain — моноширинний малий, який має 12 рядків і 48 стовпців.

Для малювання роздільна здатність Brain становить 480 x 240 пікселів.

Екран V5 Brain з червоними лініями сітки, що показують розташування з 12 рядків та 48 стовпців загалом. Розміри пікселів становлять 479 завширшки та 239 заввишки. Верхній лівий кут починається на (0,0) пікселів та рядку 1, стовпці 1, тоді як нижній правий кут закінчується на (479, 239) пікселях та рядку 12, стовпці 48.

Доступ#

Доступ до класу screen можна отримати за допомогою:

Brain.Screen

Нотатки#

  • Об’єкт screen надається мозком. Він не конструюється безпосередньо.

  • Проєкти використовують один глобальний об’єкт Brain , тому функції екрану викликаються за допомогою Brain.Screen.

Приклад#

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

Функції-члени#

Клас screen містить такі функції-члени:

  • print — Виводить відформатований текст, числа або логічні значення на екран Brain.

  • setCursor — Переміщує текстовий курсор до вказаного рядка та стовпця.

  • newLine — Очищає залишок поточного рядка та переміщує курсор на наступний рядок.

  • clearLine — Очищає залишок поточного рядка або очищає вказаний рядок.

  • row — Повертає рядок, у який буде надруковано текст.

  • column — Повертає стовпець, у якому буде надруковано текст.

  • getStringHeight — Повертає висоту рядка в пікселях, використовуючи поточний шрифт.

  • getStringWidth — Повертає ширину рядка в пікселях, використовуючи поточний шрифт.

  • printAt — Друкує відформатований текст у позиції пікселів x, y.

  • clearScreen — Видаляє всі малюнки та текст з екрана Brain.

  • setFont — Встановлює шрифт, який використовується для друку на екрані.

  • setPenWidth — Встановлює товщину намальованих ліній та контурів фігур.

  • setPenColor — Встановлює колір тексту, пікселів, ліній та контурів фігур.

  • setFillColor — Встановлює колір заливки для намальованих фігур та фону друкованого тексту.

  • setOrigin — Встановлює початок координат, що використовується для координат екрана.

  • setClipRegion — Обмежує вивід на екран прямокутною областю.

  • drawPixel — Малює один піксель за заданою координатою.

  • drawLine — Малює лінію між двома точками.

  • drawRectangle — Малює прямокутник у точці x, y із заданим розміром.

  • drawCircle — Малює коло в точці x, y із заданим радіусом.

  • drawImageFromFile — Малює зображення з файлу SD-карти на екрані.

  • render — Вмикає подвійну буферизацію або відтворює зворотний буфер на екрані.

  • pressing — Повертає, чи натискається екран у даний момент.

  • xPosition — Повертає x-координату останнього натискання на екран.

  • yPosition — Повертає y-координату останнього натискання на екран.

  • pressed — Реєструє функцію зворотного виклику, яка запускається при натисканні на екран.

  • released — Реєструє функцію зворотного виклику, яка запускається, коли екран відпускається після натискання.

Перед викликом будь-яких функцій-членів screen необхідно створити екземпляр brain , як показано нижче:

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

print#

Відображає текст, числа або логічні значення на екрані V5 Brain.

Available Functions

1 — Друкує відформатований текст за допомогою рядкових літералів або рядків у стилі C, доступних лише для читання.

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

2 — Друкує відформатований текст за допомогою змінюваних масивів символів.

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

Parameters

Параметр

Тип

Опис

format

const char*

Рядок форматування, наданий як рядковий літерал або рядок у стилі C, доступний лише для читання (наприклад, “Score: %d”).

format

char*

Рядок форматування, наданий як змінний масив символів.

…

Одне або кілька додаткових значень, що вставляються у рядок форматування, розділених комами.

Return Values

Ця функція не повертає значення.

Notes
  • Вивід починається з поточної позиції курсора на екрані.

  • Друкований текст використовує поточний екранний шрифт .

  • Друкований текст використовує поточний колір пера .

  • Текст, надрукований за допомогою параметра print завжди друкується з фоном, а колір фону визначається кольором заливки.

  • Під час використання рядка форматування кількість та типи переданих значень повинні збігатися зі специфікаторами формату format specificiers у рядку.

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

Знімок екрана V5 Brain, на якому у верхньому лівому куті екрана білим текстом зображено напис Hello, Robot!.

setCursor#

Переміщує курсор до певного рядка та стовпця на екрані V5 Brain. Наступний виклик print почне друкувати з цього місця.

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

Parameters

Параметр

Тип

Опис

row

int32_t

Рядок, до якого потрібно перемістити курсор.

col

int32_t

Стовпець, до якого потрібно перемістити курсор.

Return Values

Ця функція не повертає значення.

Notes
  • Впливає на початок наступного виводу тексту при використанні print.

  • Рядки та стовпці базуються на поточно встановленому шрифті екрана.

  • Шрифт за замовчуванням (mono20) використовує 12 рядків та 48 стовпців.

  • Виклик setCursor впливає лише на позицію наступного виводу тексту.

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

Знімок екрана V5 Brain, на якому показано рядок 3, стовпець 12, надруковані у верхній частині, ближче до центру екрана, у цьому положенні.

newLine#

Переміщує курсор на початок наступного рядка на екрані Brain.

Available Functions
void newLine();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Ця функція не повертає значення.

Notes
  • Якщо курсор знаходиться посередині речення, newLine очистить решту рядка після курсора перед переходом до наступного рядка.

  • Після виклику newLineкурсор позиціонується у першому стовпці наступного рядка.

  • Позиція курсора та нумерація рядків встановлюються за допомогою setCursor.

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

Знімок екрана V5 Brain, на якому показано два рядки білого тексту у верхньому лівому куті. Верхній рядок – це рядок 1, а другий рядок безпосередньо під ним – рядок 2.

clearLine#

Очищає текст з рядка на екрані V5 Brain.

Available Functions

1 — Очищає решту поточного рядка від позиції курсора.

void clearLine();

2 — Очищає вказаний рядок, використовуючи поточний налаштований колір заливки.

void clearLine(
    int number );

3 — Очищає вказаний рядок за допомогою попередньо визначеного або об’єкта користувацький колір.

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

4 — Очищає вказаний рядок, використовуючи шістнадцяткове значення кольору.

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

5 — Очищає вказаний рядок, використовуючи значення відтінку.

void clearLine(
    int number,
    int hue );

Parameters

Параметр

Тип

Опис

number

int

Номер рядка, який потрібно очистити. Нумерація рядків починається з 1.

color

const color&

Очищає рядок за допомогою об’єкта кольору color Попередньо визначені кольори включають:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Також можна використовувати користувацький об’єкт кольору.

color

const char*

Очищає рядок, використовуючи шістнадцяткове значення кольору (наприклад, “#000000”).

hue

int

Очищає рядок, використовуючи ціле значення відтінку в діапазоні 0–359, що представляє градуси на колірному колі.

Return Values

Ця функція не повертає значення.

Notes
  • Очищення рядка не змінює поточну позицію курсора.

  • Позиція курсора та нумерація рядків встановлюються за допомогою setCursor.

  • Значення параметра hue базується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

Кольорове коло, що показує діапазон кольорів від 0 до 359, де червоний – 0, зелений – 120, а синій – 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#

Повертає рядок, у якому текст буде надруковано на екрані V5 Brain.

Available Functions
int32_t row();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає значення int32_t , яке представляє рядок, у який буде надруковано текст.

Нумерація рядків починається з 1.

Notes
  • Позиція курсора базується на поточному шрифті екрана .

  • Повернене значення вказує, де з’явиться наступний друкований вивід.

  • Значення рядка змінюється під час друку тексту або виклику функції setCursor.

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

Знімок екрана V5 Brain, на якому показано текст 3 білим кольором у верхньому лівому квадранті екрана, у рядку 3, стовпці 12.

column#

Повертає стовпець, у якому текст буде надруковано на екрані V5 Brain.

Available Functions
int32_t column();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає значення int32_t , яке представляє стовпець, у який буде надруковано текст.

Нумерація стовпців починається з 1.

Notes
  • Позиція курсора базується на поточному шрифті екрана .

  • Повернене значення вказує, де з’явиться наступний друкований вивід.

  • Значення стовпця змінюється під час друку тексту або виклику функції setCursor.

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

Знімок екрана V5 Brain, на якому показано текст 15 білим кольором у верхньому лівому квадранті екрана, у позиції 15 рядка 3 стовпця.

getStringHeight#

Повертає висоту рядка в пікселях під час рендерингу на екрані V5 Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Параметр

Тип

Опис

cstr

const char*

Текст, який потрібно виміряти, у вигляді рядка у стилі C (наприклад, “Hello”).

Return Values

Повертає значення int32_t , яке представляє висоту рядка в пікселях під час рендерингу на екрані Brain.

Notes

getStringWidth#

Повертає ширину рядка в пікселях під час відображення на екрані V5 Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Параметр

Тип

Опис

cstr

const char*

Текст, який потрібно виміряти, у вигляді рядка у стилі C (наприклад, “Hello”).

Return Values

Повертає значення int32_t , яке представляє ширину рядка в пікселях під час рендерингу на екрані Brain.

Notes

printAt#

Друкує текст, числа або логічні значення за певною координатою на екрані V5 Brain.

Available Functions

1 — Друкує відформатований вивід у вказаному місці пікселя.

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

2 — Друкує відформатований вивід у вказаному місці пікселя та встановлює, чи є фон тексту непрозорим чи прозорим.

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

Parameters

Параметр

Тип

Опис

x

int32_t

Позиція x для друку, відносно початку координат на екрані.

y

int32_t

Позиція по осі Y для друку, відносно початку координат на екрані.

bOpaque

bool

Керує тим, чи друкований текст малюється непрозорим чи прозорим:

  • true — Фон друкованого тексту заповнюється за допомогою поточного кольору заливки.
  • false — Текст малюється прозорим, а фон не заповнюється.

format

const char*

Рядок форматування, який контролює те, що друкується на екрані (наприклад, “Score: %d”).

…

Одне або кілька додаткових значень, що вставляються у рядок форматування, розділених комами.

Return Values

Ця функція не повертає значення.

Notes
  • Координати x та y залежать від поточного початку координат екрана, який можна змінити за допомогою setOrigin.

  • Друкований текст використовує поточний екранний шрифт .

  • Друкований текст використовує поточний колір пера .

  • Під час використання рядка форматування кількість та типи переданих значень повинні збігатися зі специфікаторами формату format specificiers у рядку.

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

Знімок екрана V5 Brain з білим текстом «По центру», вирівняним по центру екрана.

clearScreen#

Стирає всі малюнки та текст з екрана Brain та скидає позицію курсора до рядка 1, стовпця 1.

Available Functions

1 — Очищає екран до чорного кольору.

void clearScreen();

2 — Очищає екран за допомогою попередньо визначеного або налаштованого об’єкта кольору власний колір.

void clearScreen(
    const color& color );

3 — Очищає екран, використовуючи шістнадцяткове значення кольору.

void clearScreen(
    const char* color );

4 — Очищає екран за допомогою значення відтінку.

void clearScreen(
    int hue );

Parameters

Параметр

Тип

Опис

color

const color&

Очищає екран за допомогою об’єкта кольору color Попередньо визначені кольори включають:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Також можна використовувати користувацький об’єкт кольору.

color

const char*

Очищає екран, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, “#000000”).

hue

int

Очищає екран, використовуючи ціле значення відтінку в діапазоні 0–359, що представляє градуси на колірному колі.

Return Values

Ця функція не повертає значення.

Notes
  • Значення параметра hue базується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

Кольорове коло, що показує діапазон кольорів від 0 до 359, де червоний – 0, зелений – 120, а синій – 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);

Знімок екрана V5 Brain, на якому вся область друку яскраво-синя.

setFont#

Встановлює шрифт, який використовується для тексту, що відображається на екрані V5 Brain.

Це керує шрифтом, що застосовується до наступного виводу тексту під час використання функцій екранного тексту, таких як print.

Available Functions
void setFont(
  fontType font );

Parameters

Параметр

Тип

Опис

font

fontType

Встановлює одне з наступних значень шрифту:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Може друкувати китайські, японські та корейські символи.
    • Спрощена китайська — Можна побачити до колонки 28.
    • Традиційна китайська — Можна побачити до колонки 28.
    • Японська (кандзі) — Можна побачити до колонки 28.
    • Корейська (хангиль) — Можна побачити до колонки 30.
Ці опції показано нижче.

Знімок екрана V5 Brain з цифрами та літерами, надрукованими білим кольором у верхньому лівому куті шрифтом MONO 12. На ньому зображено AZ в одному рядку, приблизно на чверть ширини екрана. У нижньому лівому куті читається 80 стовпців і 20 рядків.
mono12

Те саме зображення, що й попереднє, шрифтом Mono 15. На ньому показано AZ в одному рядку, майже на половині ширини екрана. У лівому нижньому куті читається 68 стовпців і 16 рядків.
mono15

Те саме зображення, що й попереднє, шрифтом Mono 20. На ньому показано AZ в одному рядку, майже через дві третини ширини екрана. У лівому нижньому куті читається 48 стовпців і 12 рядків.
mono20

Те саме зображення, що й попереднє, шрифтом Mono 30. На ньому показано AZ в одному рядку, майже по всій ширині екрана. У лівому нижньому куті читається 32 стовпці та 8 рядків.
mono30

Те саме зображення, що й попереднє, шрифтом Mono 40. На ньому зображено AX в одному рядку, що займає всю ширину екрана. У лівому нижньому куті читається 24 стовпці та 6 рядків.
mono40

Те саме зображення, що й попереднє, шрифтом Mono 60. AP показано в одному рядку, по всій ширині екрана. Внизу показано 16 стовпців та 4 рядки.
mono60

Те саме зображення, що й попереднє, шрифтом Prop 20. На ньому показано AZ в одному рядку, майже через дві третини ширини екрана. У лівому нижньому куті читається 48 стовпців і 12 рядків.
prop20

Те саме зображення, що й попереднє, шрифтом Prop 30. На ньому зображено AZ в одному рядку, майже по всій ширині екрана. У лівому нижньому куті написано 32 стовпці та 8 рядків.
prop30

Те саме зображення, що й попереднє, шрифтом Prop 40. На ньому AU показано в одному рядку, по всій ширині екрана. У лівому нижньому куті читається 24 стовпці та 6 рядків.
prop40

Те саме зображення, що й попереднє, шрифтом Prop 60. На ньому показано AN в одному рядку, що займає всю ширину екрана. Внизу написано 15 стовпців і 4 рядки.
prop60

Те саме зображення, що й попереднє, зі шрифтом CJK 16. На ньому зображено AZ в одному рядку, що займає приблизно дві третини екрана. У наступних рядках VEXcode наведено спрощеною китайською, традиційною китайською, корейською та японською мовами. Внизу написано 43 стовпці та 12 рядків.
fontType::cjk16

Return Values

Ця функція не повертає значення.

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

Знімок екрана V5 Brain, на якому у верхньому лівому куті показано білий текст VEX більшим шрифтом, ніж за замовчуванням.


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

Знімок екрана V5 Brain, на якому у верхньому лівому куті показано текст "VEX机器人" китайським шрифтом.

setPenWidth#

Встановлює товщину намальованих ліній та контурів фігур.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Параметр

Тип

Опис

width

uint32_t

Ширина пера, у пікселях, від 0 до 32.

Return Values

Ця функція не повертає значення.

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

Знімок екрана V5 Brain, на якому показано прямокутник із товстими рамками, надрукований у верхньому лівому квадранті екрана.

setPenColor#

Встановлює колір тексту, пікселів, ліній та контурів фігур.

Available Functions

1 — Встановлює колір пера за допомогою попередньо визначеного або налаштованого об’єкта власний колір.

void setPenColor(
    const color& color );

2 — Встановлює колір пера, використовуючи шістнадцяткове значення кольору.

void setPenColor(
    const char* color );

3 — Встановлює колір пера за допомогою значення відтінку.

void setPenColor(
    int hue );

Parameters

Параметр

Тип

Опис

color

const color&

Встановлює колір пера за допомогою об’єкта кольору color Попередньо визначені кольори включають:

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

color

const char*

Встановлює колір пера, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, “#FF0000”).

hue

int

Встановлює колір пера, використовуючи ціле значення відтінку в діапазоні 0–359, що представляє градуси на колірному колі (наприклад, 0 — червоний, 120 — зелений, а 240 — синій).

Return Values

Ця функція не повертає значення.

Notes
  • Колір пера за замовчуванням на початку проєкту — white.

  • Колір пера використовується для контурів фігур (наприклад, з drawCircle або drawRectangle), текстового та числового виводу (з print та printAt), а також окремих пікселів, намальованих за допомогою drawPixel.

  • Значення параметра hue базується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

Кольорове коло, що показує діапазон кольорів від 0 до 359, де червоний – 0, зелений – 120, а синій – 240.

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

Знімок екрана V5 Brain, на якому видно прямокутник, намальований помаранчевим кольором у верхньому лівому квадранті екрана.

setFillColor#

Встановлює колір заливки, який використовується під час малювання фігур.

Available Functions

1 — Встановлює колір заливки за допомогою попередньо визначеного або об’єкта користувацький колір.

void setFillColor(
    const color& color );

2 — Встановлює колір заливки, використовуючи шістнадцяткове значення кольору.

void setFillColor(
    const char* color );

3 — Встановлює колір заливки за допомогою значення відтінку.

void setFillColor(
    int hue );

Parameters

Параметр

Тип

Опис

color

const color&

Встановлює колір заливки за допомогою об’єкта кольору color Попередньо визначені кольори включають:

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

color

const char*

Встановлює колір заливки, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, “#00FF00”).

hue

int

Встановлює колір заливки, використовуючи ціле значення відтінку в діапазоні 0–359, що представляє градуси навколо колірного кола (наприклад, 0 — червоний, 120 — зелений, а 240 — синій).

Return Values

Ця функція не повертає значення.

Notes
  • Колір заливки за замовчуванням на початку проєкту — black.

  • Колір заливки використовується для внутрішньої частини фігур (наприклад, з drawCircle або drawRectangle).

  • Колір заливки використовується як колір фону для друкованого тексту (наприклад, з print та printAt).

    • Якщо transparent використовується для друкованого тексту, фон буде black.

  • Значення параметра hue базується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

Кольорове коло, що показує діапазон кольорів від 0 до 359, де червоний – 0, зелений – 120, а синій – 240.

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

Знімок екрана V5 Brain, на якому показано прямокутник, заповнений фіолетовим кольором, у лівому нижньому квадранті екрана.

setOrigin#

Встановлює початок координат, який використовується для малювання та друку на основі координат на екрані Brain.

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

Parameters

Параметр

Тип

Опис

x

int32_t

Положення початку координат за осями x відносно верхнього лівого кута екрана Brain від 0 до 479.

y

int32_t

Положення початку координат за осю Y відносно верхнього лівого кута екрана Brain від 0 до 239.

Return Values

Ця функція не повертає значення.

Notes
  • Початком координат за замовчуванням є верхній лівий кут екрана з координатою (0, 0).

  • Початок координат застосовується до функцій координат, таких як drawLine, drawRectangle, drawCircle та printAt.

  • Початок залишається чинним, доки його знову не змінять або проєкт не буде скинуто.

setClipRegion#

Визначає прямокутну область на екрані, де будуть обмежені всі малюнки та текст. Будь-який вміст поза цією областю не відображатиметься.

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

Parameters

Параметр

Тип

Опис

x

int

Координата x верхнього лівого кута області відсікання, задана як ціле число від 0 до 479.

y

int

Y-координата верхнього лівого кута області відсікання, задана як ціле число від 0 до 239.

width

int

Ширина області кліпу в пікселях, задана як ціле число від 0 до 479.

height

int

Висота області кліпу в пікселях, задана як ціле число від 0 до 239.

Return Values

Ця функція не повертає значення.

Notes
  • Функції малювання все ще виконуються, навіть якщо вони знаходяться за межами області кліпування, але видимою є лише частина всередині області.

  • Координати x та y залежать від поточного початку координат екрана, який можна змінити за допомогою setOrigin.

  • Область відсікання застосовується лише до поточного потоку.

  • Встановлення нової області відсікання замінює будь-яку раніше встановлену область відсікання для поточного потоку.

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

Знімок екрана V5 Brain з білим текстом «Вирізано» та суцільним червоним квадратом безпосередньо під ним у верхньому лівому квадранті, що відображає те, що надруковано в області вирізу.

drawPixel#

Малює один піксель на екрані V5 Brain у вибраному місці пікселя x та y.

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

Parameters

Параметр

Тип

Опис

x

int

Координата x, де буде намальовано піксель, задана як ціле число від 0 до 479.

y

int

Координата Y, де буде намальовано піксель, задана як ціле число від 0 до 239.

Return Values

Ця функція не повертає значення.

Notes
  • Пікселі малюються з використанням поточного кольору пера, встановленого за допомогою setPenColor.

  • Координати x та y залежать від поточного початку координат екрана, який можна встановити за допомогою setOrigin.

  • Якщо вказане розташування пікселя знаходиться за межами екрана, піксель не відображатиметься.

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

Знімок екрана V5 Brain, на якому показано набір пікселів, що відображають кути квадрата поблизу центру екрана.

drawLine#

Малює пряму лінію, що з’єднує дві точки на екрані V5 Brain.

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

Parameters

Параметр

Тип

Опис

x1

int

Початкова x-координата лінії, задана як ціле число від 0 до 479.

y1

int

Початкова координата y лінії, задана як ціле число від 0 до 239.

x2

int

Кінцева x-координата лінії, задана як ціле число від 0 до 479.

y2

int

Кінцева координата y лінії, задана як ціле число від 0 до 239.

Return Values

Ця функція не повертає значення.

Notes
  • Лінії малюються з використанням поточного кольору пера, встановленого за допомогою setPenColor.

  • Ширина лінії визначається поточною шириною пера, встановленою за допомогою setPenWidth.

  • Координати x та y залежать від поточного початку координат екрана, який можна встановити за допомогою setOrigin.

  • Якщо будь-яка частина лінії виходить за межі екрана, малюється лише її видима частина.

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

Знімок екрана V5 Brain показує тонку діагональну лінію по центру, від верхнього лівого кута до нижнього правого кута.

drawRectangle#

Малює прямокутник на екрані V5 Brain у вказаному положенні та розмірі.

Available Functions

1 — Малює та заповнює прямокутник, використовуючи поточний налаштований колір заливки.

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

2 — Малює та заповнює прямокутник, використовуючи попередньо визначений або власний колір об’єкта користувацький колір.

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

3 — Малює та заповнює прямокутник, використовуючи шістнадцяткове значення кольору.

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

4 — Малює та заповнює прямокутник, використовуючи значення відтінку.

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

Parameters

Параметр

Тип

Опис

x

int

Координата x верхнього лівого кута прямокутника, задана як ціле число від 0 до 479.

y

int

Y-координата верхнього лівого кута прямокутника, задана як ціле число від 0 до 239.

width

int

Ширина прямокутника, задана як ціле число від 0 до 479.

height

int

Висота прямокутника, задана як ціле число від 0 до 239.

color

const color&

Заповнює прямокутник за допомогою об’єкта кольору color Попередньо визначені кольори включають:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Також можна використовувати користувацький об’єкт кольору.

color

const char*

Заповнює прямокутник шістнадцятковим значенням кольору (наприклад, “#FF0000”).

hue

int

Заповнює прямокутник значенням відтінку в діапазоні 0–359.

Return Values

Ця функція не повертає значення.

Notes
  • Контур прямокутника малюється з використанням поточного кольору пера, встановленого за допомогою setPenColor.

  • Товщина контуру визначається поточною шириною пера, встановленою за допомогою setPenWidth.

  • Якщо параметр color не вказано, внутрішня частина прямокутника заповнюється поточним кольором заливки, встановленим за допомогою setFillColor.

  • Координати x та y залежать від поточного початку координат екрана, який можна змінити за допомогою setOrigin.

  • Якщо будь-яка частина прямокутника лежить за межами екрана, малюється лише видима частина.

  • Значення параметра hue базується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

Кольорове коло, що показує діапазон кольорів від 0 до 359, де червоний – 0, зелений – 120, а синій – 240.

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

Знімок екрана V5 Brain показує прямокутник з тонкою білою рамкою, надрукованою у верхньому лівому квадранті.

drawCircle#

Малює коло на екрані V5 Brain у вказаному положенні та радіусі.

Available Functions

1 — Малює та заповнює коло, використовуючи поточний налаштований колір заливки.

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

2 — Малює та заповнює коло, використовуючи попередньо визначений або власний колір об’єкта власний колір.

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

3 — Малює та заповнює коло, використовуючи шістнадцяткове значення кольору.

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

4 — Малює та заповнює коло, використовуючи значення відтінку.

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

Parameters

Параметр

Тип

Опис

x

int

Координата x центру кола, задана як ціле число від 0 до 479.

y

int

Y-координата центру кола, задана як ціле число від 0 до 239.

radius

int

Радіус кола, заданий як ціле число від 0 до 239 пікселів.

color

const color&

Заповнює коло за допомогою об’єкта кольору color Попередньо визначені кольори включають:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Також можна використовувати користувацький об’єкт кольору.

color

const char*

Заповнює коло шістнадцятковим значенням кольору (наприклад, “#FF0000”).

hue

int

Заповнює коло значенням відтінку в діапазоні 0–359.

Return Values

Ця функція не повертає значення.

Notes
  • Контур кола малюється з використанням поточного кольору пера, встановленого за допомогою setPenColor.

  • Товщина контуру визначається поточною шириною пера, встановленою за допомогою setPenWidth.

  • Якщо параметр color не вказано, внутрішня частина кола заповнюється поточним кольором заливки, встановленим за допомогою setFillColor.

  • Координати x та y залежать від поточного початку координат екрана, який можна змінити за допомогою setOrigin.

  • Значення параметра hue базується на круговому колірному колі, як показано нижче, де значення представляють градуси навколо колеса (наприклад, червоний біля 0°, зелений біля 120° та синій біля 240°).

Кольорове коло, що показує діапазон кольорів від 0 до 359, де червоний – 0, зелений – 120, а синій – 240.

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

Знімок екрана V5 Brain показує коло з тонкою білою рамкою в центрі.

drawImageFromFile#

Малює зображення на екрані V5 Brain, використовуючи файл зображення, що зберігається на SD-карті.

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

Parameters

Параметр

Тип

Опис

name

const char*

Ім’я файлу зображення на SD-карті. Файл повинен мати розширення .bmp або .png.

x

int

Координата x у пікселях від 0 до 479, на якій буде намальовано лівий край зображення.

y

int

Координата Y у пікселях від 0 до 239, на якій буде намальовано верхній край зображення.

Return Values

Повертає логічне значення, яке вказує, чи було зображення успішно намальовано:

  • true — Зображення було успішно завантажено та намальовано на екрані.
  • false — Зображення не вдалося намалювати (наприклад, якщо файл не існує або є недійсним).

Notes
  • Підтримувані формати зображень: .bmp та .png.

  • Розмір файлу зображення не повинен перевищувати 512 KB

    • Для мінімізації розміру файлу рекомендується 8-бітне кодування RLE.

  • Максимальні підтримувані розміри зображення відповідають розміру екрана Brain (приблизно 479 x 239 пікселів).

  • Координати x та y залежать від поточного початку координат екрана, який можна змінити за допомогою setOrigin.

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

render#

Вмикає подвійну буферизацію для екрана Brain. Після виклику будь-які функції малювання (наприклад, текст, фігури чи зображення) більше не відображатимуться негайно для решти проекту. Натомість оновлення відображатимуться лише тоді, коли знову буде використано render Це забезпечує плавніші та контрольованіші оновлення екрана, але означає, що нічого не буде видно, доки не буде використано render.

Available Functions

1 — Вмикає подвійну буферизацію або виводить дані зворотного буфера на екран.

bool render();

2 — Відтворює задній буфер на екрані з контролем вертикальної синхронізації та додатковим виконанням планувальника.

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

Parameters

Параметр

Тип

Опис

bVsyncWait

bool

​

  • true — Зачекайте вертикального оновлення екрана перед рендерингом, щоб зменшити візуальні розриви.
  • false — Не чекайте вертикального оновлення екрана перед рендерингом.

bRunScheduler

bool

Необов’язково.

  • true (за замовчуванням) — Дозволити виконання фонових завдань під час очікування рендерингу.
  • false — Не дозволити виконання фонових завдань під час очікування рендерингу.

Return Values

Повертає логічне значення, яке вказує, чи збережені малюнки в буфері були успішно відображені на екрані:

  • true — Малюнки були успішно відображені на екрані.
  • false — Малюнки не вдалося відобразити на екрані.
  • Notes
    • Виклик render вимагатиме використання 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#

Повідомляє, чи натискається екран V5 Brain на даний момент.

Available Functions
bool pressing();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає логічне значення, що вказує на поточний стан натискання екрана:true — Екран наразі натискається. або false — Екран не натискається.

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#

Повертає x-координату останнього натискання на екрані V5 Brain.

Available Functions
int32_t xPosition();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає значення int32_t , яке представляє x-координату останнього натискання на екран у пікселях від 0 до 479.

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

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

yPosition#

Повертає y-координату останнього натискання на екрані V5 Brain.

Available Functions
int32_t yPosition();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає значення int32_t , яке представляє y-координату останнього натискання екрана в пікселях від 0 до 239.

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

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

pressed#

Реєструє функцію, яка викликається при натисканні екрана V5 Brain.

Available Functions

1 — Викликає функцію при натисканні на екран.

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

2 — Викликає функцію при натисканні на екран і передає визначений користувачем аргумент функції зворотного виклику.

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

Parameters

Параметр

Тип

Опис

callback

void (*)(void)

Функція, яка викликається при натисканні на екран.

callback

void ()(void)

Функція, яка викликається при натисканні на екран і отримує визначений користувачем аргумент.

arg

void*

Визначене користувачем значення, яке передається до функції зворотного виклику під час натискання екрана.

Return Values

Ця функція не повертає значення.

Notes
  • Функція зворотного виклику виконується щоразу, коли натискається екран Brain.

  • Одночасно можна зареєструвати лише одну функцію зворотного виклику; повторний виклик pressed замінює попередній зворотний виклик.

  • Функція зворотного виклику повинна повертати void.

Examples

Визначити функцію зворотного виклику (поза 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);
}

Зареєструйте зворотний виклик всередині 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#

Реєструє функцію, яка викликається, коли екран V5 Brain відпускається після натискання.

Available Functions

1 — Викликає функцію, коли екран відпускається після натискання.

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

2 — Викликає функцію, коли екран відпускається після натискання, та передає визначений користувачем аргумент функції зворотного виклику.

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

Parameters

Параметр

Тип

Опис

callback

void (*)(void)

Функція, яка викликається, коли екран відпускається після натискання.

callback

void ()(void)

Функція, яка викликається, коли екран відпускається після натискання, і отримує визначений користувачем аргумент.

arg

void*

Визначене користувачем значення, яке передається до функції зворотного виклику, коли екран відпускається після натискання.

Return Values

Ця функція не повертає значення.

Notes
  • Функція зворотного виклику виконується щоразу, коли екран Brain відпускається після натискання.

  • Одночасно може бути зареєстрована лише одна функція зворотного виклику; повторний виклик released замінює попередній зворотний виклик.

  • Функція зворотного виклику повинна повертати void.

Examples

Визначити функцію зворотного виклику (поза 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);
}

Зареєструйте зворотний виклик всередині 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);
  }
}