Ecrã#

Introdução#

Os métodos de ecrã controlam a forma como o cérebro IQ (2ª geração) exibe texto, números e gráficos no seu ecrã integrado.

Para desenho, a resolução do cérebro é de 160 x 108 pixéis.

Esta página utiliza brain como exemplo de nome Cérebro. Substitua-o pelo seu próprio nome configurado conforme necessário.

Segue-se uma lista de todos os métodos:

Impressão com cursor — Posicione e imprima texto.

  • print — Imprime texto, números ou valores de variáveis ​​na posição atual do cursor.

  • set_cursor — Move o cursor para uma linha e coluna específicas.

  • next_row — Desloca o cursor para a coluna 1 da linha seguinte.

  • clear_row — Limpa uma linha de texto.

  • row — Devolve a linha onde o texto será impresso.

  • column — Retorna a coluna onde o texto será impresso.

  • print_at — Imprime texto, números ou valores de variáveis ​​numa coordenada x e y específica.

  • get_string_width — Retorna a largura de uma string em pixéis utilizando a fonte actual.

  • get_string_height — Retorna a altura de uma string em pixéis utilizando a fonte atual.

Mutadores — Alterem as definições do ecrã, as cores e o comportamento de desenho.

  • clear_screen — Limpa o ecrã de todos os desenhos e textos.

  • set_font — Define o tipo de letra para texto impresso.

  • set_pen_width — Define a espessura das linhas desenhadas e dos contornos das formas.

  • set_pen_color — Define a cor do texto, os pixéis, as linhas e os contornos das formas.

  • set_fill_color — Define a cor de preenchimento para as formas desenhadas e para os fundos de texto impressos.

  • set_origin — Define a origem utilizada para a impressão e desenho baseados em coordenadas.

Desenhar — Adicionar elementos gráficos ao ecrã.

  • draw_pixel — Desenha um pixel numa coordenada.

  • draw_line — Desenha uma linha entre dois pontos.

  • draw_rectangle — Desenha um rectângulo.

  • draw_circle — Desenha um círculo.

  • set_clip_region — Restringe o local onde podem aparecer desenhos e texto.

  • render — Atualiza o ecrã do cérebro com texto e desenhos apenas quando é chamado.

Impressão do cursor#

print#

print imprime texto, números ou valores de variáveis ​​no ecrã do Brain na posição do cursor e fonte atuais.

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

Parâmetros

Descrição

text

O texto, número ou valor da variável a imprimir no ecrã.

precision

Opcional. O número de casas decimais a apresentar ao mostrar números. Deve ser escrito como um argumento nomeado, por exemplo:precision=3. O padrão é 2.

opaque

Opcional. opaque=True — O fundo do texto será preenchido com a cor de preenchimento actual ou preto por defeito. opaque=False (padrão) — O fundo do texto corresponderá à cor de fundo do ecrã.

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

Uma captura de ecrã do ecrã do VEX IQ Brain mostra "Olá, robô!" em texto branco na primeira linha.

# 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 move o cursor para uma linha e coluna específicas no ecrã Brain. A chamada seguinte print começará a imprimir nesse local. Quantas linhas e colunas cabem confortavelmente depende da fonte selecionada.

As fontes monoespaçadas têm caracteres com a mesma largura, tornando o posicionamento do texto consistente. Em contraste, as fontes proporcionais variam na largura dos caracteres, pelo que algumas letras ocupam mais espaço do que outras. No entanto, independentemente do tipo utilizado, set_cursor posiciona o cursor com base no tamanho da linha e da coluna, e não no estilo da fonte. O tamanho da letra pode ser ajustado utilizando set_font.

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

Parâmetros

Descrição

row

A linha para a qual mover o cursor.

column

A coluna para a qual deve mover o cursor.

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

Uma captura de ecrã do ecrã do IQ Brain mostra 23,19 em texto branco no canto superior esquerdo.

next_row#

next_row move o cursor para a coluna 1 na linha seguinte do ecrã Brain.

Usage:
brain.screen.next_row()

Parâmetros

Descrição

Este método não tem parâmetros.

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

Uma captura de ecrã do ecrã do IQ Brain mostra a Linha 1 em texto branco no canto superior esquerdo e a Linha 2 diretamente abaixo.

clear_row#

clear_row limpa uma única linha de texto no ecrã do Brain.

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

Parâmetros

Descrição

linha

Opcional. A linha a limpar. O predefinido é a linha atual do cursor.

cor

Opcional. A cor a aplicar na linha limpa. As opções incluem:

  • 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
Também pode especificar uma cor personalizada.

# 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 returns the row where text will be printed as an integer.

Usage:
brain.screen.row()

Parâmetros

Descrição

Este método não tem parâmetros.

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

Uma captura de ecrã do ecrã do IQ Brain com um número 3 branco impresso na extremidade esquerda do ecrã, centrado verticalmente, na posição da linha 3, coluna 2.

column#

column returns the column where text will be printed as an integer.

Usage:
brain.screen.column()

Parâmetros

Descrição

Este método não tem parâmetros.

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

Uma captura de ecrã do ecrã do IQ Brain com um número 2 branco impresso na extremidade esquerda do ecrã, centrado verticalmente, na posição da linha 3, coluna 2.

get_string_width#

get_string_width devolve a largura de uma string em pixéis como um número inteiro, tal como apareceria no ecrã do Brain. A largura varia consoante o comprimento da string e a fonte atual.

Usage:
brain.screen.get_string_width(string)

Parâmetros

Descrição

string

A corda a medir.

get_string_height#

get_string_height devolve a altura de uma string em pixéis como um número inteiro, tal como apareceria no ecrã do Brain. A altura varia consoante o comprimento da string e a fonte atual.

Usage:
brain.screen.get_string_height(string)

Parâmetros

Descrição

string

A corda a medir.

Mutantes#

clear_screen#

clear_screen limpa todos os desenhos e textos do ecrã do cérebro.

Usage:
brain.screen.clear_screen(color)

Parâmetros

Descrição

color

Opcional. Define a cor do ecrã. As opções incluem:

  • 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
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do IQ Brain com toda a área imprimível a vermelho vivo.

set_font#

set_font define a fonte utilizada para apresentar o texto no ecrã do Brain. Esta fonte será aplicada a todo o texto impresso com print ou print_at. A fonte predefinida no início de um projeto é MONO20.

Usage:
brain.screen.set_font(fontname)

Parâmetro

Descrição

fontname

Define a fonte para uma das seguintes opções:

  • MONO12
  • MONO15
  • MONO20
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Estas opções são apresentadas abaixo.

Uma captura de ecrã do VEX IQ Brain com uma série de números e letras na fonte Mono 12. As letras AZ estão numa linha, ocupando toda a largura do ecrã. O canto inferior esquerdo indica 26 caracteres na horizontal e 9 linhas.
MONO12

A mesma captura de ecrã da anterior, agora com o tipo de letra Mono 15. As letras AT estão numa única linha, ocupando toda a largura do ecrã. O canto inferior esquerdo indica 20 caracteres na horizontal e 7 linhas.
MONO15

A mesma captura de ecrã da anterior, agora com o tipo de letra Mono 20. As letras AP estão numa única linha, ocupando toda a largura do ecrã. O canto inferior esquerdo indica 16 caracteres na horizontal e 5 linhas.
MONO20

A mesma captura de ecrã da anterior, agora com a fonte Mono 30. Os números de 1 a 9 e um 0 extra estão numa única linha, ocupando toda a largura do ecrã. O canto inferior esquerdo indica 3 linhas.
MONO30

A mesma captura de ecrã da anterior, agora com a fonte Mono 40. Os números de 1 a 8 estão na segunda linha, ocupando toda a largura do ecrã.
MONO40

A mesma captura de ecrã da anterior, agora com a fonte Mono 60. O ecrã mostra MN 60 em fonte grande, ocupando quase toda a metade superior do ecrã.
MONO60

A mesma captura de ecrã da anterior, agora com o tipo de letra da Proposta 20. As letras AW estão numa única linha, ocupando toda a largura do ecrã. O canto inferior esquerdo indica 26 caracteres na horizontal e 5 linhas.
PROP20

A mesma captura de ecrã da anterior, agora com a fonte da Proposta 30. Os números de 1 a 9 repetem-se duas vezes numa linha, ocupando toda a largura do ecrã. O canto inferior esquerdo indica 18 caracteres na horizontal e 3 linhas.
PROP30

A mesma captura de ecrã do anterior, agora com o tipo de letra Prop 40. O ecrã apresenta o Prop 40 na linha superior e indica 14 caracteres e 2 linhas na segunda.
PROP40

A mesma captura de ecrã da anterior, agora com a fonte Prop 60. O ecrã apresenta a PROP 60 em letra grande, ocupando quase toda a metade superior do ecrã.
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")

Uma captura de ecrã do ecrã do IQ Brain com texto branco em duas linhas no canto superior esquerdo. A primeira linha diz Mono Medium e a segunda linha directamente abaixo diz Prop Medium numa fonte mais pequena.

set_pen_width#

set_pen_width define a espessura das linhas desenhadas e dos contornos das formas.

Usage:
brain.screen.set_pen_width(width)

Parâmetro

Descrição

width

A largura da caneta, em pixéis, varia de 0 a 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)

Uma captura de ecrã do IQ Brain com dois círculos brancos impressos na metade inferior do ecrã. O círculo da esquerda tem uma aresta mais estreita do que o da direita.

set_pen_color#

set_pen_color define a cor do texto, os pixéis, as linhas e os contornos das formas.

Usage:
brain.screen.set_pen_color(color)

Parâmetro

Descrição

color

Opcional. A cor da caneta e da fonte a utilizar. As opções incluem:

  • 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
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do IQ Brain com dois pequenos retângulos desenhados na metade inferior do ecrã. O rectângulo da esquerda é azul e o da direita é branco.

set_fill_color#

set_fill_color define a cor de preenchimento utilizada quando as formas são desenhadas.

Usage:
brain.screen.set_fill_color(color)

Parâmetro

Descrição

color

Opcional. A cor de preenchimento a utilizar. As opções incluem:

  • 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
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do IQ Brain com um círculo amarelo brilhante com uma fina borda branca desenhada na metade esquerda do ecrã.

set_origin#

set_origin define a origem utilizada para o desenho e impressão baseada em coordenadas no ecrã do Brain. Por predefinição, a origem é o canto superior esquerdo do ecrã.

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

Parâmetro

Descrição

x

A nova coordenada x a definir como origem, fornecida como um número inteiro de 0 a 159.

y

A nova coordenada y a definir como origem, fornecida como um número inteiro de 0 a 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)

Uma captura de ecrã de um teste de QI cerebral com uma linha branca que começa ligeiramente à esquerda do centro e se estende diagonalmente para baixo e para a direita em direção ao canto inferior direito do ecrã.

Desenhar#

draw_pixel#

draw_pixel desenha um pixel na coordenada x e y seleccionada utilizando a cor da caneta.

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

Parâmetro

Descrição

x

A coordenada x onde o pixel será desenhado, fornecida como um número inteiro de 0 a 159.

y

A coordenada y onde o pixel será desenhado, fornecida como um número inteiro de 0 a 107.

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

Uma captura de ecrã do ecrã do IQ Brain com um pequeno ponto branco no centro do ecrã.

draw_line#

draw_line desenha uma linha da primeira coordenada do ecrã (x1, y1) para a segunda coordenada do ecrã (x2, y2) utilizando a largura da caneta e a cor da caneta atuais.

As coordenadas x e y utilizam a origem padrão de (0, 0) a menos que tenha sido definida uma origem diferente utilizando set_origin.

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

Parâmetro

Descrição

x1

A coordenada x inicial da linha, dada como um número inteiro de 0 a 159.

y1

A coordenada y inicial da linha, dada como um número inteiro de 0 a 107.

x2

A coordenada x final da recta, dada como um número inteiro de 0 a 159.

y2

A coordenada y final da recta, dada como um número inteiro de 0 a 107.

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

Uma captura de ecrã do ecrã do IQ Brain com uma linha diagonal branca desenhada do canto superior esquerdo para o canto inferior direito.

draw_rectangle#

draw_rectangle desenha um rectângulo com o seu canto superior esquerdo na coordenada (x, y) seleccionada e um tamanho determinado pela largura e altura fornecidas, tudo medido em pixéis. O contorno do retângulo é desenhado utilizando a largura da caneta e a cor da caneta atuais. O interior é preenchido com a cor de preenchimento actual, a menos que seja utilizado o parâmetro opcional color.

As coordenadas x e y utilizam a origem padrão de (0,0) a menos que tenha sido definida uma origem diferente utilizando set_origin.

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

Parâmetro

Descrição

x

A coordenada x do canto superior esquerdo do retângulo, dada como um número inteiro de 0 a 159.

y

A coordenada y do canto superior esquerdo do retângulo, dada como um número inteiro de 0 a 107.

width

A largura do retângulo, em pixéis.

height

A altura do retângulo, em pixéis.

color

Opcional. A cor de preenchimento do retângulo. As opções incluem:

  • 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
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do IQ Brain com um grande retângulo vermelho com uma fina borda branca desenhada quase centrada no ecrã.

draw_circle#

draw_circle desenha um círculo com o seu centro na coordenada (x, y) seleccionada e um tamanho determinado pelo raio fornecido, tudo medido em pixéis. O contorno do círculo é desenhado utilizando a largura da caneta e a cor da caneta atuais. O interior é preenchido com a cor de preenchimento actual, a menos que seja utilizado o parâmetro opcional color.

As coordenadas x e y utilizam a origem padrão de (0,0) a menos que tenha sido definida uma origem diferente utilizando set_origin.

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

Parâmetro

Descrição

x

A coordenada x do centro do círculo, dada como um número inteiro de 0 a 159.

y

A coordenada y do centro do círculo, dada como um número inteiro de 0 a 107.

radius

O raio do círculo, em pixéis.

color

Opcional. A cor de preenchimento do círculo. As opções incluem:

  • 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
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do IQ Brain com um círculo verde sólido com uma borda branca fina no centro do ecrã.

set_clip_region#

O parâmetro set_clip_region define uma área rectangular no ecrã onde serão apresentados todos os desenhos e textos. Qualquer conteúdo fora dessa região não será mostrado.

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

Parâmetro

Descrição

x

A coordenada x do canto superior esquerdo da região de recorte, fornecida como um número inteiro ou decimal de 0 a 159.

y

A coordenada y do canto superior esquerdo da região de recorte, fornecida como um número inteiro ou decimal de 0 a 107.

width

A largura da região de recorte em pixéis.

height

A altura da região de recorte em pixéis.

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

Uma captura de ecrã do ecrã do IQ Brain com texto branco junto ao centro do ecrã que diz "Cortar de", com um quadrado vermelho sólido diretamente por baixo, mostrando o que é impresso na região de recorte.

render#

O comando render activa o duplo buffer para o ecrã do Brain. Uma vez acionado, quaisquer comandos de desenho (como texto, formas ou imagens) não aparecerão imediatamente durante o resto do projeto. Em vez disso, as actualizações só serão apresentadas quando o comando render for utilizado novamente. Isto permite atualizações de ecrã mais suaves e controladas, mas significa que nada será visível até que o comando render seja utilizado.

Usage:
brain.screen.render()

Parâmetros

Descrição

Este método não tem parâmetros.

# 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()