Екран#

Вступ#

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

За замовчуванням шрифт для друку в Brain — моноширинний малий.

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

Доступ#

Доступ до класу 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 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 — Очищає весь екран (за бажанням до заданого кольору).

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

print#

Відображає текст, числа або логічні значення на екрані IQ (2-го покоління) 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 завжди друкується з фоном, а колір фону визначається кольором заливки.

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

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

Знімок екрана мозку IQ (2-го покоління), на якому у верхньому лівому куті екрана білим текстом написано «Привіт, роботе!».

setCursor#

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

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

Parameters

Параметр

Тип

Опис

row

int32_t

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

col

int32_t

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

Return Values

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

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

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

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

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

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

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

Знімок екрана мозку IQ (2-го покоління), на якому у верхньому лівому куті екрана, у цій позиції, надруковано число 25.

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

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

clearLine#

Очищає текст із рядка на екрані IQ (2-го покоління) 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#

Повертає рядок, у якому буде надруковано текст на екрані IQ (2-го покоління) 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("row: ", Brain.Screen.row());

Знімок екрана IQ (2-го покоління) Brain, на якому показано рядок тексту 3 білим кольором у лівій частині екрана, у позиції 12-го стовпця рядка 3.

column#

Повертає стовпець, у якому текст буде надруковано на екрані IQ (2-го покоління) Brain.

Available Functions
int32_t column();

Parameters

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

Return Values

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

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

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

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

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

Examples
// Display the cursor's current column
Brain.Screen.print("column: ", Brain.Screen.column());

Знімок екрана IQ (2-го покоління) Brain, на якому показано стовпець: 9 білим кольором у верхній частині екрана, у рядку 1, позиції стовпця 9.

getStringHeight#

Повертає висоту рядка в пікселях під час відображення на екрані IQ Brain (2-го покоління).

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Параметр

Тип

Опис

cstr

const char*

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

Return Values

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

Notes

getStringWidth#

Повертає ширину рядка в пікселях під час відображення на екрані IQ Brain (2-го покоління).

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Параметр

Тип

Опис

cstr

const char*

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

Return Values

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

Notes

printAt#

Друкує текст, числа або логічні значення за певною координатою на екрані IQ (2-го покоління) 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.

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

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

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

Examples
// Print the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, 1);

Знімок екрана IQ (2-го покоління) Brain з білим текстом, що читається як 1, надруковано у точці (100, 40).

clearScreen#

Стирає всі малюнки та текст з екрана Мозку.

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

Знімок екрана IQ (2-го покоління) Brain, на якому вся область друку яскраво-червона.

setFont#

Встановлює шрифт, який використовується для тексту, що відображається на екрані IQ (2-го покоління) Brain.

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

Available Functions
void setFont(
  fontType font );

Parameters

Параметр

Тип

Опис

font

fontType

Sets the font to one of the following:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
These options are shown below.

Знімок екрана VEX IQ Brain із серією цифр та літер шрифтом Mono 12. Літера AZ розташована в одному рядку, що охоплює всю ширину екрана. Лівий нижній кут позначає 26 символів по горизонталі та 9 рядків.
mono12

Той самий скріншот, що й попередній, тепер зі шрифтом Mono 15. Літери AT розташовані в одному рядку, займаючи всю ширину екрана. Лівий нижній кут позначає 20 символів завширшки та 7 рядків.
mono15

Той самий скріншот, що й попередній, тепер зі шрифтом Mono 20. Літери AP розташовані в одному рядку, займаючи всю ширину екрана. Лівий нижній кут позначає 16 символів завширшки та 5 рядків.
mono20

Той самий скріншот, що й попередній, тепер зі шрифтом Mono 30. Числа від 1 до 9 та додатковий 0 розташовані в одному рядку, охоплюючи всю ширину екрана. Лівий нижній кут позначає 3 рядки.
mono30

Той самий скріншот, що й попередній, тепер зі шрифтом Mono 40. Числа від 1 до 8 знаходяться на другому рядку, займаючи всю ширину екрана.
mono40

Той самий скріншот, що й попередній, тепер зі шрифтом Mono 60. На екрані відображається MN 60 великим шрифтом, який займає майже всю верхню половину екрана.
mono60

Той самий скріншот, що й попередній, тепер зі шрифтом Prop 20. Літери AW розташовані в одному рядку, займаючи всю ширину екрана. Лівий нижній кут позначає 26 символів по горизонталі та 5 рядків.
prop20

Той самий скріншот, що й попередній, тепер зі шрифтом Prop 30. Числа 1-9 повторюються двічі в одному рядку, займаючи всю ширину екрана. Лівий нижній кут позначає 18 символів по горизонталі та 3 рядки.
prop30

Той самий скріншот, що й попередній, тепер зі шрифтом Prop 40. У верхньому рядку екрана написано Prop 40, а в другому — 14 символів і 2 рядки.
prop40

Той самий скріншот, що й попередній, тепер зі шрифтом Prop 60. На екрані великим шрифтом написано PROP 60, займаючи майже всю верхню половину екрана.
prop60

Return Values

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

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

Знімок екрана IQ Brain з білим текстом у два рядки у верхньому лівому куті. У першому рядку написано Mono Medium, а в другому рядку безпосередньо під ним — Prop Medium меншим шрифтом.

setPenWidth#

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

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Параметр

Тип

Опис

width

uint32_t

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

Return Values

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

Notes Examples
// Draw a circle with a pen width of 5
Brain.Screen.drawCircle(40, 70, 20);
Brain.Screen.setPenWidth(5);
Brain.Screen.drawCircle(100, 70, 20);

Знімок екрана IQ 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
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(50, 50, 10, 20);

Знімок екрана IQ 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 circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);

Знімок екрана IQ Brain з яскраво-жовтим колом і тонкою білою рамкою, намальованою в лівій половині екрана.

setOrigin#

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

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

Parameters

Параметр

Тип

Опис

x

int32_t

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

y

int32_t

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

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

y

int

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

width

int

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

height

int

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

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

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

drawPixel#

Малює один піксель на екрані IQ (2-го покоління) Brain у вибраному місці пікселя x та y.

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

Parameters

Параметр

Тип

Опис

x

int

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

y

int

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

Return Values

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

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

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

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

Examples
// Draw one pixel at the center 
// of the screen
Brain.Screen.drawPixel(80, 50);

Знімок екрана IQ Brain з крихітною білою цяткою в центрі екрана.

drawLine#

Малює пряму лінію, що з’єднує дві точки на екрані IQ (2-го покоління) Brain.

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

Parameters

Параметр

Тип

Опис

x1

int

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

y1

int

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

x2

int

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

y2

int

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

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

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

drawRectangle#

Малює прямокутник на екрані IQ (2-го покоління) 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 до 159.

y

int

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

width

int

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

height

int

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

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

Знімок екрана IQ Brain з великим червоним прямокутником і тонкою білою рамкою, намальованою майже по центру екрана.

drawCircle#

Малює коло на екрані IQ (2-го покоління) 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 до 159.

y

int

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

radius

int

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

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 green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, green);

Знімок екрана IQ Brain із суцільним зеленим колом і тонкою білою рамкою в центрі екрана.

drawImageFromFile#

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

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

Parameters

Параметр

Тип

Опис

name

const char*

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

x

int

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

y

int

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

Return Values

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

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

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

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

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

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

  • Координати 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();