Экран#

Введение#

Методы управления экраном определяют, как мозг IQ (2-го поколения) отображает текст, числа и графику на своем встроенном экране.

Для рисования разрешение мозга составляет 160 x 108 пикселей.

На этой странице в качестве примера имени Мозг используется brain При необходимости замените его на собственное имя, заданное вами.

Ниже приведён список всех методов:

Ввод и вывод текста курсором.

  • print — Выводит текст, числа или значения переменных в текущей позиции курсора.

  • set_cursor — Перемещает курсор в определенную строку и столбец.

  • next_row — Перемещает курсор в столбец 1 следующей строки.

  • clear_row — Очищает строку текста.

  • row — Возвращает строку, в которой будет напечатан текст.

  • column — Возвращает столбец, в котором будет напечатан текст.

  • print_at — Выводит текст, числа или значения переменных в заданных координатах x и y.

  • get_string_width — Возвращает ширину строки в пикселях, используя текущий шрифт.

  • get_string_height — Возвращает высоту строки в пикселях, используя текущий шрифт.

Мутаторы — Изменяют настройки экрана, цвета и поведение отрисовки.

  • clear_screen — Очищает экран от всех рисунков и текста.

  • set_font — Устанавливает шрифт для печатного текста.

  • set_pen_width — Задает толщину нарисованных линий и контуров фигур.

  • set_pen_color — Задает цвет текста, пикселей, линий и контуров фигур.

  • set_fill_color — Задает цвет заливки для нарисованных фигур и фона печатного текста.

  • set_origin — Устанавливает начало координат, используемое для печати и рисования на основе координат.

Рисование — Добавление графических элементов на экран.

  • draw_pixel — Рисует один пиксель по заданной координате.

  • draw_line — Рисует линию между двумя точками.

  • draw_rectangle — Рисует прямоугольник.

  • draw_circle — Рисует круг.

  • set_clip_region — Ограничивает области, где могут отображаться рисунки и текст.

  • render — Обновляет экран Мозга текстом и рисунками только при вызове.

Печать курсора#

print#

print выводит текст, числа или значения переменных на экран Brain в текущей позиция курсора и шрифт.

Usage:
brain.screen.print(text, precision, opaque)

Параметры

Описание

text

Текст, число или значение переменной для вывода на экран.

precision

Необязательный параметр. Количество десятичных знаков, отображаемых при выводе чисел. Этот параметр необходимо указывать в качестве ключевого аргумента, например:precision=3Значение по умолчанию — 2.

opaque

Необязательно. opaque=True — Фон текста будет залит текущим цветом заливки или черным по умолчанию. opaque=False (по умолчанию) — Фон текста будет соответствовать цвету фона экрана.

# Display a message at the starting
# cursor position
brain.screen.print("Hello, Robot!")

На скриншоте экрана VEX IQ Brain на первой строке белым текстом написано «Привет, робот!».

# Display a percentage with 4 decimal
# places and a blue background
brain.screen.set_fill_color(Color.BLUE)
brain.screen.print((42/100), precision = 4, opaque = True)

set_cursor#

set_cursor перемещает курсор в определенную строку и столбец на экране Brain. Следующий вызов print начнет печать с этого места. Количество строк и столбцов, которые могут комфортно поместиться, зависит от выбранного шрифта.

Моноширинные шрифты имеют одинаковую ширину символов, что обеспечивает единообразие размещения текста. В отличие от них, пропорциональные шрифты различаются по ширине символов, поэтому некоторые буквы занимают больше места, чем другие. Однако, независимо от используемого типа, set_cursor позиционирует курсор на основе размера строки и столбца, а не стиля шрифта. Размер шрифта можно отрегулировать с помощью set_font.

Usage:
brain.screen.set_cursor(row, column)

Параметры

Описание

row

Строка, в которую нужно переместить курсор.

column

Столбец, в который нужно переместить курсор.

# Repeatedly print the Brain's timer at
# the top left of the screen
while True:
    brain.screen.print(brain.timer.time(SECONDS))
    brain.screen.next_row()
    wait(1, SECONDS)
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)

На скриншоте экрана IQ Brain в верхнем левом углу белым текстом написано 23,19.

next_row#

next_row перемещает курсор в столбец 1 следующей строки на экране «Мозг».

Usage:
brain.screen.next_row()

Параметры

Описание

Этот метод не имеет параметров.

# Display two lines of text
brain.screen.print("Line 1")
brain.screen.next_row()
brain.screen.print("Line 2")

На скриншоте экрана IQ Brain в верхнем левом углу белым текстом отображается строка 1, а непосредственно под ней — строка 2.

clear_row#

clear_row очищает одну строку текста на экране «Мозг».

Usage:
brain.screen.clear_row(row, color)

Параметры

Описание

ряд

Необязательный параметр. Строка для очистки. По умолчанию используется текущая строка курсора.

цвет

Необязательный параметр. Цвет, который будет применен к очищенной строке. Доступные варианты:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
Вы также можете указать пользовательский цвет.

# Display text on two rows
brain.screen.print("This text stays")
brain.screen.next_row()
brain.screen.print("This disappears")

# Wait 3 seconds before clearing
# only the second row
wait(3, SECONDS)
brain.screen.clear_row()

# Turn the 5th row green
brain.screen.clear_row(5, Color.GREEN)

row#

row возвращает строку, в которой текст будет выведен в виде целого числа.

Usage:
brain.screen.row()

Параметры

Описание

Этот метод не имеет параметров.

# Set cursor to (3,2) and print 
# row number
brain.screen.set_cursor(3, 2)
brain.screen.print(brain.screen.row())

Скриншот экрана IQ Brain с белой цифрой 3, напечатанной в крайнем левом углу экрана, по центру по вертикали, в позиции 3 строки 2 столбца.

column#

Параметр column возвращает столбец, в котором текст будет выведен в виде целого числа.

Usage:
brain.screen.column()

Параметры

Описание

Этот метод не имеет параметров.

# Set cursor to (3,2) and print 
# column number
brain.screen.set_cursor(3, 2)
brain.screen.print(brain.screen.column())

Скриншот экрана IQ Brain с белой цифрой 2, напечатанной в крайнем левом углу экрана, по центру по вертикали, в позиции 3 строки 2 столбца.

get_string_width#

get_string_width возвращает ширину строки в пикселях в виде целого числа, как она будет выглядеть на экране Brain. Ширина изменяется в зависимости от длины строки и текущего шрифта.

Usage:
brain.screen.get_string_width(string)

Параметры

Описание

string

Строка, которую нужно измерить.

get_string_height#

get_string_height возвращает высоту строки в пикселях в виде целого числа, как она будет выглядеть на экране Brain. Высота изменяется в зависимости от длины строки и текущего шрифта.

Usage:
brain.screen.get_string_height(string)

Параметры

Описание

string

Строка, которую нужно измерить.

Мутаторы#

clear_screen#

clear_screen очищает все рисунки и текст с экрана Мозга.

Usage:
brain.screen.clear_screen(color)

Параметры

Описание

color

Необязательный параметр. Задает цвет экрана. Доступные варианты:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
Вы также можете указать пользовательский цвет.

# Draw a circle and clear it after 
# 2 seconds
brain.screen.draw_circle(80, 50, 20)
wait(2, SECONDS)
brain.screen.clear_screen()

# Turn the screen red
brain.screen.clear_screen(Color.RED)

Скриншот экрана IQ Brain, где вся область для печати ярко-красная.

set_font#

set_font задает шрифт, используемый для отображения текста на экране Brain. Этот шрифт будет применяться ко всему тексту, напечатанному с помощью print или print_at. Шрифт по умолчанию в начале проекта — MONO20.

Usage:
brain.screen.set_font(fontname)

Параметр

Описание

fontname

Устанавливает шрифт на один из следующих вариантов:

  • MONO12
  • MONO15
  • MONO20
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Эти параметры показаны ниже.

Скриншот экрана 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

# Display two different fonts on 
# two separate lines
brain.screen.set_font(FontType.MONO20)
brain.screen.print("Mono Medium")
brain.screen.next_row()
brain.screen.set_font(FontType.PROP20)
brain.screen.print("Prop Medium")

Скриншот экрана IQ Brain с белым текстом в две строки в верхнем левом углу. Первая строка гласит Mono Medium, а вторая строка прямо под ней — Prop Medium, написанная более мелким шрифтом.

set_pen_width#

set_pen_width задает толщину нарисованных линий и контуров фигур.

Usage:
brain.screen.set_pen_width(width)

Параметр

Описание

width

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

# Draw two circles with
# different pen widths
brain.screen.draw_circle(40, 70, 20)
brain.screen.set_pen_width(5)
brain.screen.draw_circle(100, 70, 20)

Скриншот экрана IQ Brain с двумя белыми кругами, напечатанными в нижней половине экрана. Круг слева нарисован с более узкой рамкой, чем круг справа.

set_pen_color#

set_pen_color задает цвет текста, пикселей, линий и контуров фигур.

Usage:
brain.screen.set_pen_color(color)

Параметр

Описание

color

Необязательно. Выберите цвет ручки и шрифта. Доступные варианты:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
Вы также можете указать пользовательский цвет.

# Draw two rectangles with
# different colors
brain.screen.draw_rectangle(100, 50, 10, 20)
brain.screen.set_pen_color(Color.BLUE)
brain.screen.draw_rectangle(50, 50, 10, 20)

Скриншот экрана IQ Brain с двумя маленькими прямоугольниками, нарисованными в нижней половине экрана. Прямоугольник слева синий, а прямоугольник справа белый.

set_fill_color#

set_fill_color устанавливает цвет заливки, используемый при рисовании фигур.

Usage:
brain.screen.set_fill_color(color)

Параметр

Описание

color

Необязательный параметр. Цвет заливки. Доступные варианты:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
Вы также можете указать пользовательский цвет.

# Draw a yellow circle
brain.screen.set_fill_color(Color.YELLOW)
brain.screen.draw_circle(50, 50, 20)

Скриншот экрана IQ Brain с ярко-желтым кругом с тонкой белой рамкой, нарисованным в левой половине экрана.

set_origin#

set_origin задает начало координат, используемое для рисования и печати на экране Brain. По умолчанию начало координат находится в верхнем левом углу экрана.

Usage:
brain.screen.set_origin(x, y)

Параметр

Описание

x

Новая координата x, устанавливаемая в качестве начала координат, задается целым числом от 0 до 159.

y

Новая y-координата, устанавливаемая в качестве начала координат, задается целым числом от 0 до 107.

# Draw a line with the origin set to (50, 50)
brain.screen.set_origin(50, 50)
brain.screen.draw_line(1, 1, 159, 107)

Скриншот экрана IQ Brain с белой линией, начинающейся немного левее центра и простирающейся по диагонали вниз вправо к нижнему правому углу экрана.

Рисовать#

draw_pixel#

draw_pixel рисует один пиксель в выбранных координатах x и y, используя текущий цвет пера.

Usage:
brain.screen.draw_pixel(x, y)

Параметр

Описание

x

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

y

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

# Draw one pixel at the center
# of the screen
brain.screen.draw_pixel(80, 50)

Скриншот экрана IQ Brain с крошечной белой точкой в ​​центре экрана.

draw_line#

draw_line рисует линию от первой экранной координаты (x1, y1) до второй экранной координаты (x2, y2) используя текущие ширину пера и цвет пера.

Координаты x и y используют начало координат по умолчанию (0, 0), если только не было установлено другое начало координат с помощью set_origin.

Usage:
brain.screen.draw_line(x1, y1, x2, y2)

Параметр

Описание

x1

Начальная x-координата линии, заданная целым числом от 0 до 159.

y1

Начальная y-координата линии, заданная целым числом от 0 до 107.

x2

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

y2

Конечная y-координата линии, заданная целым числом от 0 до 107.

# Draw a line from the top left to
# bottom right of the screen
brain.screen.draw_line(0, 0, 159, 107)

Скриншот экрана IQ Brain с белой диагональной линией, проведенной из верхнего левого угла в нижний правый угол.

draw_rectangle#

draw_rectangle рисует прямоугольник с верхним левым углом в выбранной (x, y) координате и размером, определяемым заданными шириной и высотой, измеряемыми в пикселях. Контур прямоугольника рисуется с использованием текущих ширина пера и цвет пера. Внутренняя часть заполняется текущим цветом заливки, если не используется необязательный color.

Координаты x и y используют начало координат по умолчанию (0,0), если только не было задано другое начало координат с помощью set_origin.

Usage:
brain.screen.draw_rectangle(x, y, width, height, color)

Параметр

Описание

x

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

y

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

width

Ширина прямоугольника в пикселях.

height

Высота прямоугольника в пикселях.

color

Необязательно. Цвет заливки прямоугольника. Доступные варианты:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
Вы также можете указать пользовательский цвет.

# Draw a red rectangle on the screen
brain.screen.draw_rectangle(25, 25, 100, 50, Color.RED)

Скриншот экрана IQ Brain с большим красным прямоугольником с тонкой белой рамкой, нарисованным почти по центру экрана.

draw_circle#

draw_circle рисует круг с центром в выбранной (x, y) координате и размером, определяемым заданным радиусом, все измеряется в пикселях. Контур круга рисуется с использованием текущих ширины пера и цвета пера. Внутренняя часть заполняется текущим цветом заливки, если не используется необязательный color.

Координаты x и y используют начало координат по умолчанию (0,0), если только не было задано другое начало координат с помощью set_origin.

Usage:
brain.screen.draw_circle(x, y, radius, color)

Параметр

Описание

x

Координата x центра окружности, заданная целым числом от 0 до 159.

y

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

radius

Радиус круга в пикселях.

color

Необязательно. Цвет заливки круга. Доступные варианты:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
Вы также можете указать пользовательский цвет.

# Draw a green circle on the screen
brain.screen.draw_circle(80, 50, 20, Color.GREEN)

Скриншот экрана IQ Brain с сплошным зеленым кругом и тонкой белой рамкой в ​​центре экрана.

set_clip_region#

Параметр set_clip_region set_clip_region определяет прямоугольную область на экране, в пределах которой будут отображаться все рисунки и текст. Любое содержимое за пределами этой области отображаться не будет.

Usage:
brain.screen.set_clip_region(x, y, width, height)

Параметр

Описание

x

Координата x верхнего левого угла области обрезки, заданная в виде целого числа или числа с плавающей запятой от 0 до 159.

y

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

width

Ширина области клипа в пикселях.

height

Высота области клипа в пикселях.

# Restrict text and drawings to a specific region
brain.screen.set_clip_region(0, 0, 120, 120)
brain.screen.draw_rectangle(60, 60, 100, 100, Color.RED)
brain.screen.print_at("Cut off!", x=60, y=60)

Скриншот экрана IQ Brain с белым текстом в центре экрана, на котором написано «Вырезано», а прямо под ним — сплошной красный квадрат, показывающий, что печатается в области клипа.

render#

render включает двойную буферизацию для экрана Brain. После вызова любые команды рисования (например, текст, фигуры или изображения) больше не будут отображаться немедленно до конца проекта. Вместо этого обновления будут отображаться только при повторном использовании render Это обеспечивает более плавное и контролируемое обновление экрана, но означает, что ничего не будет видно до тех пор, пока не будет использован render.

Usage:
brain.screen.render()

Параметры

Описание

Этот метод не имеет параметров.

# Render text after moving
brain.screen.render()
brain.screen.print("Render later...")
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
brain.screen.render()