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

Доступ#
Доступ до класу 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 із заданим радіусом.render— Вмикає подвійну буферизацію або відтворює зворотний буфер на екрані.
Перед викликом будь-яких функцій-членів screen необхідно створити екземпляр brain , як показано нижче:
// Create the Brain
brain Brain = brain();
print#
Відображає текст, числа або логічні значення на екрані IQ (1-го покоління) Brain.
Available Functions1 — Друкує відформатований текст за допомогою рядкових літералів або рядків у стилі C, доступних лише для читання.
void print( const char* format, ... );
Parameters2 — Друкує відформатований текст за допомогою змінюваних масивів символів.
void print( char* format, ... );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Рядок форматування, наданий як рядковий літерал або рядок у стилі C, доступний лише для читання (наприклад, |
|
|
Рядок форматування, наданий як змінний масив символів. |
|
Одне або кілька додаткових значень, що вставляються у рядок форматування, розділених комами. |
Ця функція не повертає значення.
NotesТекст, надрукований за допомогою
printзавжди друкується з фоном, а колір фону визначається кольором заливки.Під час використання рядка форматування кількість та типи переданих значень повинні збігатися зі специфікаторами формату format specificiers у рядку.
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");
setCursor#
Переміщує курсор до певного рядка та стовпця на екрані IQ (1-го покоління) Brain. Наступний виклик print почне друк у цьому місці.
void setCursor(
int32_t row,
int32_t col );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Рядок, до якого потрібно перемістити курсор. |
|
|
Стовпець, до якого потрібно перемістити курсор. |
Ця функція не повертає значення.
NotesВпливає на початок наступного виводу тексту при використанні
print.Рядки та стовпці базуються на поточно встановленому шрифті екрана.
Виклик
setCursorвпливає лише на позицію наступного виводу тексту.
// Print at row 3 column 7
Brain.Screen.setCursor(3, 7);
Brain.Screen.print("VEXcode!");

newLine#
Переміщує курсор на початок наступного рядка на екрані Brain.
Available Functionsvoid newLine();
Ця функція не приймає жодних параметрів.
Return ValuesЦя функція не повертає значення.
NotesЯкщо курсор знаходиться посередині речення,
newLineочистить решту рядка після курсора перед переходом до наступного рядка.Після виклику
newLineкурсор позиціонується у першому стовпці наступного рядка.Позиція курсора та нумерація рядків встановлюються за допомогою
setCursor.
// Display two lines of text
Brain.Screen.print("First message");
Brain.Screen.newLine();
Brain.Screen.print("Second message");

clearLine#
Очищає текст з рядка на екрані IQ (1-го покоління) Brain.
Available Functions1 — Очищає решту поточного рядка від позиції курсора.
void clearLine();
2 — Очищає вказаний рядок, використовуючи поточний налаштований колір заливки.
void clearLine( int number );
3 — Очищає вказаний рядок за допомогою попередньо визначеного або об’єкта користувацький колір.
void clearLine( int number, const color& color );
4 — Очищає вказаний рядок, використовуючи шістнадцяткове значення кольору.
void clearLine( int number, const char* color );
Parameters5 — Очищає вказаний рядок, використовуючи значення відтінку.
void clearLine( int number, int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Номер рядка, який потрібно очистити. Нумерація рядків починається з |
|
|
Очищає рядок за допомогою об’єкта кольору
|
|
|
Очищає рядок, використовуючи шістнадцяткове значення кольору (наприклад, |
|
|
Очищає рядок, використовуючи ціле значення відтінку в діапазоні |
Ця функція не повертає значення.
NotesОчищення рядка не змінює поточну позицію курсора.
Позиція курсора та нумерація рядків встановлюються за допомогою
setCursor.Екран IQ (1-го покоління) Brain є монохромним, тому певні кольори не відображатимуться на екрані.
// 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 (1-го покоління) Brain.
Available Functionsint32_t row();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає значення int32_t , яке представляє рядок, у який буде надруковано текст.
Нумерація рядків починається з 1.
NotesПовернене значення вказує, де з’явиться наступний друкований вивід.
Значення рядка змінюється під час друку тексту або виклику функції
setCursor.
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("row: ", Brain.Screen.row());
column#
Повертає стовпець, у якому текст буде надруковано на екрані IQ (1-го покоління) Brain.
Available Functionsint32_t column();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає значення int32_t , яке представляє стовпець, у який буде надруковано текст.
Нумерація стовпців починається з 1.
NotesПовернене значення вказує, де з’явиться наступний друкований вивід.
Значення стовпця змінюється під час друку тексту або виклику функції
setCursor.
// Display the cursor's current column
Brain.Screen.print("column: ", Brain.Screen.column());
getStringHeight#
Повертає висоту рядка в пікселях під час відображення на екрані IQ Brain (1-го покоління).
Available Functionsint32_t getStringHeight(
const char* cstr );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Текст, який потрібно виміряти, у вигляді рядка у стилі C (наприклад, |
Повертає значення int32_t , яке представляє висоту рядка в пікселях під час рендерингу на екрані Brain.
Повернена висота залежить від вибраного на даний момент екранного шрифту.
Ця функція вимірює рядок, не відображаючи його на екрані.
Повернена висота відображає, як виглядатиме рядок після друку.
getStringWidth#
Повертає ширину рядка в пікселях під час відображення на екрані IQ Brain (1-го покоління).
Available Functionsint32_t getStringWidth(
const char* cstr );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Текст, який потрібно виміряти, у вигляді рядка у стилі C (наприклад, |
Повертає значення int32_t , яке представляє ширину рядка в пікселях під час рендерингу на екрані Brain.
Повернена ширина залежить від вибраного на даний момент екранного шрифту.
Ця функція вимірює рядок, не відображаючи його на екрані.
Повернена ширина відображає, як рядок виглядатиме після друку.
printAt#
Друкує текст, числа або логічні значення за певною координатою на екрані IQ (1-го покоління) Brain.
Available Functions1 — Друкує відформатований вивід у вказаному місці пікселя.
void printAt( int32_t x, int32_t y, const char* format, ... );
Parameters2 — Друкує відформатований вивід у вказаному місці пікселя та встановлює, чи є фон тексту непрозорим чи прозорим.
void printAt( int32_t x, int32_t y, bool bOpaque, const char* format, ... );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Позиція x для друку, відносно початку координат на екрані. |
|
|
Позиція по осі Y для друку, відносно початку координат на екрані. |
|
|
Керує тим, чи друкований текст малюється непрозорим чи прозорим:
|
|
|
Рядок форматування, який контролює те, що друкується на екрані (наприклад, |
|
Одне або кілька додаткових значень, що вставляються у рядок форматування, розділених комами. |
Ця функція не повертає значення.
NotesКоординати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.Під час використання рядка форматування кількість та типи переданих значень повинні збігатися зі специфікаторами формату format specificiers у рядку.
// Print the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, 1);
clearScreen#
Стирає всі малюнки та текст з екрана Мозку.
Available Functions1 — Очищає екран до чорного кольору.
void clearScreen();
2 — Очищає екран за допомогою попередньо визначеного або налаштованого об’єкта кольору власний колір.
void clearScreen( const color& color );
3 — Очищає екран, використовуючи шістнадцяткове значення кольору.
void clearScreen( const char* color );
Parameters4 — Очищає екран за допомогою значення відтінку.
void clearScreen( int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Очищає екран за допомогою об’єкта кольору
|
|
|
Очищає екран, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, |
|
|
Очищає екран, використовуючи ціле значення відтінку в діапазоні |
Ця функція не повертає значення.
NotesЕкран IQ (1-го покоління) Brain є монохромним, тому певні кольори не відображатимуться на екрані.
// 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);
setFont#
Встановлює шрифт, який використовується для тексту, що відображається на екрані IQ (1-го покоління) Brain.
Це керує шрифтом, що застосовується до наступного виводу тексту під час використання функцій екранного тексту, таких як print.
void setFont(
fontType font );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Sets the font to one of the following:
|
Ця функція не повертає значення.
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");
setPenWidth#
Встановлює товщину намальованих ліній та контурів фігур.
Available Functionsvoid setPenWidth(
uint32_t width );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Ширина пера, у пікселях, від 0 до 32. |
Ця функція не повертає значення.
NotesШирина пера застосовується до функцій малювання, таких як
drawLine,drawRectangleтаdrawCircle.
// 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);
setPenColor#
Встановлює колір тексту, пікселів, ліній та контурів фігур.
Available Functions1 — Встановлює колір пера за допомогою попередньо визначеного або налаштованого об’єкта власний колір.
void setPenColor( const color& color );
2 — Встановлює колір пера, використовуючи шістнадцяткове значення кольору.
void setPenColor( const char* color );
Parameters3 — Встановлює колір пера за допомогою значення відтінку.
void setPenColor( int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Встановлює колір пера за допомогою об’єкта кольору
|
|
|
Встановлює колір пера, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, |
|
|
Встановлює колір пера, використовуючи ціле значення відтінку в діапазоні |
Ця функція не повертає значення.
NotesЕкран IQ (1-го покоління) Brain є монохромним, тому певні кольори не відображатимуться на екрані.
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(50, 50, 10, 20);
setFillColor#
Встановлює колір заливки, який використовується під час малювання фігур.
Available Functions1 — Встановлює колір заливки за допомогою попередньо визначеного або об’єкта користувацький колір.
void setFillColor( const color& color );
2 — Встановлює колір заливки, використовуючи шістнадцяткове значення кольору.
void setFillColor( const char* color );
Parameters3 — Встановлює колір заливки за допомогою значення відтінку.
void setFillColor( int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Встановлює колір заливки за допомогою об’єкта кольору
|
|
|
Встановлює колір заливки, використовуючи шістнадцяткове значення кольору, представлене у вигляді рядка (наприклад, |
|
|
Встановлює колір заливки, використовуючи ціле значення відтінку в діапазоні |
Ця функція не повертає значення.
NotesЕкран IQ (1-го покоління) Brain є монохромним, тому певні кольори не відображатимуться на екрані.
// Draw a circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);
setOrigin#
Встановлює початок координат, що використовується для малювання графіки на екрані Brain.
Available Functionsvoid setOrigin(
int32_t x,
int32_t y );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Положення початку координат по осі x відносно верхнього лівого кута екрана Brain від 0 до 159. |
|
|
Положення початку координат за осю Y відносно верхнього лівого кута екрана Brain від 0 до 107. |
Ця функція не повертає значення.
NotesПочатком координат за замовчуванням є верхній лівий кут екрана з координатою (0, 0).
Початок координат застосовується до функцій координат, таких як
drawLine,drawRectangle,drawCircleтаprintAt.Початок залишається чинним, доки його знову не змінять або проєкт не буде скинуто.
setClipRegion#
Визначає прямокутну область на екрані, де будуть обмежені всі малюнки та текст. Будь-який вміст поза цією областю не відображатиметься.
Available Functionsvoid setClipRegion(
int x,
int y,
int width,
int height );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Координата x верхнього лівого кута області відсікання, задана як ціле число від 0 до 159. |
|
|
Y-координата верхнього лівого кута області відсікання, задана як ціле число від 0 до 107. |
|
|
Ширина області кліпу в пікселях, задана як ціле число від 0 до 159. |
|
|
Висота області кліпу в пікселях, задана як ціле число від 0 до 107. |
Ця функція не повертає значення.
NotesФункції малювання все ще виконуються, навіть якщо вони знаходяться за межами області кліпування, але видимою є лише частина всередині області.
Координати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.Область відсікання застосовується лише до поточного потоку.
Встановлення нової області відсікання замінює будь-яку раніше встановлену область відсікання для поточного потоку.
// 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#
Малює один піксель на екрані IQ (1-го покоління) Brain у вказаному місці пікселя x та y.
Available Functionsvoid drawPixel(
int x,
int y );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Координата x, де буде намальовано піксель, задана як ціле число від 0 до 159. |
|
|
Координата Y, де буде намальовано піксель, задана як ціле число від 0 до 107. |
Ця функція не повертає значення.
NotesЕкран IQ (1-го покоління) Brain є монохромним, тому певні кольори не відображатимуться на екрані.
Координати
xтаyзалежать від поточного початку координат екрана, який можна встановити за допомогоюsetOrigin.Якщо вказане розташування пікселя знаходиться за межами екрана, піксель не відображатиметься.
// Draw one pixel at the center
// of the screen
Brain.Screen.drawPixel(80, 50);
drawLine#
Малює пряму лінію, що з’єднує дві точки на екрані IQ (1-го покоління) Brain.
Available Functionsvoid drawLine(
int x1,
int y1,
int x2,
int y2 );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Початкова x-координата лінії, задана як ціле число від 0 до 159. |
|
|
Початкова координата y лінії, задана як ціле число від 0 до 107. |
|
|
Кінцева x-координата лінії, задана як ціле число від 0 до 159. |
|
|
Кінцева координата y лінії, задана як ціле число від 0 до 107. |
Ця функція не повертає значення.
NotesЕкран IQ (1-го покоління) Brain є монохромним, тому певні кольори не відображатимуться на екрані.
Ширина лінії визначається поточною шириною пера, встановленою за допомогою
setPenWidth.Координати
xтаyзалежать від поточного початку координат екрана, який можна встановити за допомогоюsetOrigin.Якщо будь-яка частина лінії виходить за межі екрана, малюється лише її видима частина.
// Draw a line from the top left to
// bottom right of the screen
Brain.Screen.drawLine(0, 0, 159, 107);
drawRectangle#
Малює прямокутник на екрані IQ (1-го покоління) Brain у вказаному положенні та розмірі.
Available Functions1 — Малює та заповнює прямокутник, використовуючи поточний налаштований колір заливки.
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 );
Parameters4 — Малює та заповнює прямокутник, використовуючи значення відтінку.
void drawRectangle( int x, int y, int width, int height, int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Координата x верхнього лівого кута прямокутника, задана як ціле число від 0 до 159. |
|
|
Y-координата верхнього лівого кута прямокутника, задана як ціле число від 0 до 107. |
|
|
Ширина прямокутника, задана як ціле число від 0 до 159. |
|
|
Висота прямокутника, задана як ціле число від 0 до 107. |
|
|
Заповнює прямокутник за допомогою об’єкта кольору
|
|
|
Заповнює прямокутник шістнадцятковим значенням кольору (наприклад, |
|
|
Заповнює прямокутник значенням відтінку в діапазоні |
Ця функція не повертає значення.
NotesЕкран IQ (1-го покоління) Brain є монохромним, тому певні кольори не відображатимуться на екрані.
Товщина контуру визначається поточною шириною пера, встановленою за допомогою
setPenWidth.Координати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.Якщо будь-яка частина прямокутника лежить за межами екрана, малюється лише видима частина.
// Draw a red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, red);
drawCircle#
Малює коло на екрані IQ (1-го покоління) Brain у вказаному положенні та радіусі.
Available Functions1 — Малює та заповнює коло, використовуючи поточний налаштований колір заливки.
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 );
Parameters4 — Малює та заповнює коло, використовуючи значення відтінку.
void drawCircle( int x, int y, int radius, int hue );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Координата x центру кола, задана як ціле число від 0 до 159. |
|
|
Y-координата центру кола, задана як ціле число від 0 до 107. |
|
|
Радіус кола, заданий як ціле число від 0 до 107 пікселів. |
|
|
Заповнює коло за допомогою об’єкта кольору
|
|
|
Заповнює коло шістнадцятковим значенням кольору (наприклад, |
|
|
Заповнює коло значенням відтінку в діапазоні |
Ця функція не повертає значення.
NotesЕкран IQ (1-го покоління) Brain є монохромним, тому певні кольори не відображатимуться на екрані.
Товщина контуру визначається поточною шириною пера, встановленою за допомогою
setPenWidth.Координати
xтаyзалежать від поточного початку координат екрана, який можна змінити за допомогоюsetOrigin.
// Draw a green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, green);
render#
Вмикає подвійну буферизацію для екрана Brain. Після виклику будь-які функції малювання (наприклад, текст або фігури) більше не відображатимуться негайно для решти проекту. Натомість оновлення відображатимуться лише тоді, коли знову буде використано render Це забезпечує плавніші та контрольованіші оновлення екрана, але означає, що нічого не буде видно, доки не буде використано render.
1 — Вмикає подвійну буферизацію або виводить дані зворотного буфера на екран.
bool render();
Parameters2 — Відтворює задній буфер на екрані з контролем вертикальної синхронізації та додатковим виконанням планувальника.
bool render( bool bVsyncWait, bool bRunScheduler = true );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
|
|
|
Необов’язково.
|
Повертає логічне значення, яке вказує, чи збережені малюнки в буфері були успішно відображені на екрані:
true— Малюнки були успішно відображені на екрані.false— Малюнки не вдалося відобразити на екрані.
Notes
Виклик
renderвимагатиме використанняrenderдля решти проєкту.
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();