Экран#
Введение#
Класс screen является производным от базового класса brain. Он управляет тем, как IQ (1-го поколения) Brain отображает текст и значения на своем встроенном экране.
Тест IQ (1-го поколения) Brain поддерживает до 5 строк и 21 столбца текста.

Доступ#
Доступ к классу screen можно получить следующим образом:
Brain.Screen
Примечания#
Объект
screenпредоставляется модулем Brain. Он не создается напрямую.В проектах используется один глобальный объект Brain
Brain, поэтому функции экрана вызываются с помощью Brain.ScreenBrain.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— Включает двойную буферизацию или выводит буфер обратно на экран.
Before calling any screen member functions, a brain instance must be created, as shown below:
// 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всегда печатается с фоном, а цвет фона определяется текущим цветом заливки .При использовании строки формата количество и типы передаваемых значений должны соответствовать спецификаторам формата в строке.
// 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
setCursorвлияет только на положение последующего текстового вывода.
// Print at row 3 column 7
Brain.Screen.setCursor(3, 7);
Brain.Screen.print("VEXcode!");

newLine#
Перемещает курсор в начало следующей строки на экране «Мозг».
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.
NotesThe cursor position is based on the current screen font.
Возвращаемое значение указывает, где будет отображаться следующий печатный результат.
Значение строки изменяется при выводе текста или при вызове
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.
NotesThe cursor position is based on the current screen font.
Возвращаемое значение указывает, где будет отображаться следующий печатный результат.
Значение столбца изменяется при выводе текста или при вызове
setCursor.
// Display the cursor's current column
Brain.Screen.print("column: ", Brain.Screen.column());
getStringHeight#
Возвращает высоту строки в пикселях при отображении на экране IQ (1-го поколения) Brain.
Available Functionsint32_t getStringHeight(
const char* cstr );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Текст, подлежащий измерению, предоставляется в виде строки в стиле C (например, |
Возвращает значение int32_t представляющее высоту строки в пикселях при отображении на экране Brain.
getStringWidth#
Возвращает ширину строки в пикселях при отображении на экране IQ (1-го поколения) Brain.
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.В печатном тексте используется текущий экранный шрифт размер шрифта.
В печатном тексте используется текущий цвет пера цвет пера.
При использовании строки формата количество и типы передаваемых значений должны соответствовать спецификаторам формата в строке.
// 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 );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Устанавливает шрифт на один из следующих вариантов:
|
Эта функция не возвращает значения.
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 относительно верхнего левого угла экрана «Мозга» в диапазоне от 0 до 159. |
|
|
Положение начала координат по оси Y относительно верхнего левого угла экрана Мозга от 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();