Ecrã#
Introdução#
A classe screen é derivada da classe base brain. Controla a forma como o cérebro IQ (1ª geração) exibe texto e valores no seu ecrã integrado.
O ecrã do IQ (1ª geração) Brain suporta até 5 linhas e 21 colunas de texto.

Acesso#
The screen class can be accessed by:
Brain.Screen
Notas#
O objeto
screené fornecido pelo Cérebro. Não é construído diretamente.Os projetos utilizam um único objeto global
Brain, pelo que as funções de ecrã são chamadas utilizandoBrain.Screen.
Exemplo#
/* 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!");
Funções de membro#
A classe screen inclui as seguintes funções membro:
print— Imprime texto formatado, números ou valores booleanos no ecrã do Brain.setCursor— Move o cursor de texto para uma linha e coluna especificadas.newLine— Limpa o resto da linha actual e move o cursor para a linha seguinte.clearLine— Limpa o resto da linha actual ou limpa uma linha especificada.row— Devolve a linha onde o texto será impresso.column— Retorna a coluna onde o texto será impresso.getStringHeight— Retorna a altura de uma string em pixéis utilizando a fonte actual.getStringWidth— Retorna a largura de uma string em pixéis utilizando a fonte actual.printAt— Imprime texto formatado numa localização de pixel x, y (opcionalmente opaco).clearScreen— Limpa todo o ecrã (opcionalmente para uma cor especificada).setFont— Define o tipo de letra utilizado para impressão no ecrã.setPenWidth— Define a espessura das linhas desenhadas e dos contornos das formas.setPenColor— Define a cor do texto, os pixéis, as linhas e os contornos das formas.setFillColor— Define a cor de preenchimento para as formas desenhadas e para os fundos de texto impressos.setOrigin— Define a origem utilizada para as coordenadas do ecrã.setClipRegion— Restringe a saída do ecrã a uma região rectangular.drawPixel— Desenha um pixel numa coordenada.drawLine— Desenha uma linha entre dois pontos.drawRectangle— Desenha um rectângulo numa localização x, y com um tamanho especificado.drawCircle— Desenha um círculo numa localização x, y com um raio especificado.render— Activa o buffer duplo ou renderiza o buffer traseiro no ecrã.
Antes de chamar qualquer função membro de screen , deve ser criada uma instância brain , como se mostra abaixo:
// Create the Brain
brain Brain = brain();
print#
Apresenta texto, números ou valores booleanos no ecrã do IQ (1ª geração) Brain.
Available Functions1 — Imprime texto formatado utilizando literais de cadeias ou cadeias de leitura de leitura apenas, no estilo C.
void print( const char* format, ... );
Parameters2 — Imprime texto formatado utilizando matrizes de caracteres modificáveis.
void print( char* format, ... );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Uma string de formato fornecida como uma string literal ou string de leitura apenas no estilo C (por exemplo, |
|
|
Uma string de formatação fornecida como uma matriz de caracteres modificável. |
|
Um ou mais valores adicionais que são introduzidos na string de formato, separados por vírgulas. |
Esta função não devolve qualquer valor.
NotesA saída começa na posição actual do cursor (posição no ecrã.
O texto impresso utiliza a fonte do ecrã atual.
O texto impresso utiliza a cor de caneta atual cor.
O texto impresso com
printé sempre impresso com um fundo, e a cor do fundo é determinada pela cor de preenchimento actual .Quando se utiliza uma string de formato, o número e os tipos de valores passados devem corresponder aos especificadores de formato na string.
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");
setCursor#
Move o cursor para uma linha e coluna específicas no ecrã do IQ (1ª geração) Brain. A próxima chamada print começará a imprimir nesse local.
void setCursor(
int32_t row,
int32_t col );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A linha para a qual mover o cursor. |
|
|
A coluna para a qual deve mover o cursor. |
Esta função não devolve qualquer valor.
NotesAfeta onde a saída de texto subsequente começa quando se utiliza
print.As linhas e colunas baseiam-se na fonte de ecrã definida atualmente.
A chamada de `
setCursor) apenas afecta a posição da saída de texto subsequente.
// Print at row 3 column 7
Brain.Screen.setCursor(3, 7);
Brain.Screen.print("VEXcode!");

newLine#
Move o cursor para o início da linha seguinte no ecrã do Brain.
Available Functionsvoid newLine();
Esta função não aceita qualquer parâmetro.
Return ValuesEsta função não devolve qualquer valor.
NotesSe o cursor estiver no meio de uma frase,
newLinelimpará o resto da linha após o cursor antes de passar para a linha seguinte.Após a chamada
newLine, o cursor é posicionado na primeira coluna da linha seguinte.A posição do cursor e a numeração das linhas são definidas através de
setCursor.
// Display two lines of text
Brain.Screen.print("First message");
Brain.Screen.newLine();
Brain.Screen.print("Second message");

clearLine#
Limpa o texto de uma linha no ecrã do IQ (1ª geração) Brain.
Available Functions1 — Limpa o resto da linha actual a partir da posição do cursor.
void clearLine();
2 — Limpa a linha especificada utilizando a cor de preenchimento actualmente configurada.
void clearLine( int number );
3 — Limpa a linha especificada utilizando um objeto de cor predefinido ou personalizado.
void clearLine( int number, const color& color );
4 — Limpa a linha especificada utilizando um valor de cor hexadecimal.
void clearLine( int number, const char* color );
Parameters5 — Limpa a linha especificada utilizando um valor de matiz.
void clearLine( int number, int hue );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O número da linha a limpar. A numeração das linhas começa em |
|
|
Limpa a linha utilizando um objeto de cor
|
|
|
Limpa a linha utilizando um valor de cor hexadecimal (por exemplo, |
|
|
Limpa a linha utilizando um valor inteiro de matiz no intervalo de |
Esta função não devolve qualquer valor.
NotesApagar uma linha não altera a posição atual do cursor.
A posição do cursor e a numeração das linhas são definidas através de
setCursor.O ecrã do IQ (1ª geração) Brain é monocromático, pelo que as cores especificadas não serão apresentadas no ecrã.
// 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#
Retorna a posição atual da linha do cursor no ecrã do IQ (1ª geração) Brain.
Available Functionsint32_t row();
Esta função não aceita qualquer parâmetro.
Return ValuesRetorna um valor int32_t que representa a linha onde o texto será impresso.
A numeração das linhas começa em 1.
NotesO valor devolvido indica onde aparecerá a próxima saída impressa.
O valor da linha muda quando o texto é impresso ou quando
setCursoré chamado.
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("row: ", Brain.Screen.row());
column#
Retorna a coluna onde o texto será impresso no ecrã do IQ (1ª geração) Brain.
Available Functionsint32_t column();
Esta função não aceita qualquer parâmetro.
Return ValuesRetorna um valor int32_t que representa a coluna onde o texto será impresso.
A numeração das colunas começa em 1.
NotesO valor devolvido indica onde aparecerá a próxima saída impressa.
O valor da coluna altera-se quando o texto é impresso ou quando é chamado
setCursor.
// Display the cursor's current column
Brain.Screen.print("column: ", Brain.Screen.column());
getStringHeight#
Devolve a altura, em pixéis, de uma string quando renderizada no ecrã do IQ (1ª geração) Brain.
Available Functionsint32_t getStringHeight(
const char* cstr );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O texto a medir, fornecido como uma string ao estilo C (por exemplo, |
Retorna um valor int32_t que representa a altura da string em pixéis quando renderizada no ecrã do Brain.
A altura devolvida depende da de ecrã atualmente selecionada.
Esta função mede a string sem a desenhar no ecrã.
A altura devolvida reflete como a string apareceria quando impressa.
getStringWidth#
Devolve a largura, em pixéis, de uma string quando renderizada no ecrã do IQ (1ª geração) Brain.
Available Functionsint32_t getStringWidth(
const char* cstr );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O texto a medir, fornecido como uma string ao estilo C (por exemplo, |
Retorna um valor int32_t que representa a largura da string em pixéis quando renderizada no ecrã do Brain.
A largura devolvida depende da de ecrã atualmente selecionada.
Esta função mede a string sem a desenhar no ecrã.
A largura devolvida reflete a forma como a string aparecerá quando impressa.
printAt#
Imprime texto, números ou valores booleanos numa coordenada específica no ecrã do IQ (1ª geração) Brain.
Available Functions1 — Imprime a saída formatada na localização de pixel especificada.
void printAt( int32_t x, int32_t y, const char* format, ... );
Parameters2 — Imprime a saída formatada na localização de pixel especificada e define se o fundo do texto é opaco ou transparente.
void printAt( int32_t x, int32_t y, bool bOpaque, const char* format, ... );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A posição x para impressão, referenciada à origem do ecrã. |
|
|
A posição y para impressão, em relação à origem do ecrã. |
|
|
Controla se o texto impresso é desenhado de forma opaca ou transparente:
|
|
|
Uma string de formatação que controla o que é impresso no ecrã (por exemplo, |
|
Um ou mais valores adicionais que são introduzidos na string de formato, separados por vírgulas. |
Esta função não devolve qualquer valor.
NotesAs coordenadas
xeysão relativas à origem do ecrã actual, que pode ser alterada através desetOrigin.O texto impresso utiliza a fonte do ecrã atual.
O texto impresso utiliza a cor de caneta atual cor.
Quando se utiliza uma string de formato, o número e os tipos de valores passados devem corresponder aos especificadores de formato na string.
// Print the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, 1);
clearScreen#
Apaga todos os desenhos e textos do ecrã do Cérebro.
Available Functions1 — Limpa o ecrã, deixando-o preto.
void clearScreen();
2 — Limpa o ecrã utilizando um objeto de cor predefinido ou personalizado.
void clearScreen( const color& color );
3 — Limpa o ecrã utilizando um valor de cor hexadecimal.
void clearScreen( const char* color );
Parameters4 — Limpa o ecrã utilizando um valor de matiz.
void clearScreen( int hue );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Limpa o ecrã utilizando um objeto de cor
|
|
|
Limpa o ecrã utilizando um valor de cor hexadecimal representado como uma string (por exemplo, |
|
|
Limpa o ecrã utilizando um valor inteiro de matiz no intervalo de |
Esta função não devolve qualquer valor.
NotesO ecrã do IQ (1ª geração) Brain é monocromático, pelo que as cores especificadas não serão apresentadas no ecrã.
// 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#
Define a fonte utilizada para o texto apresentado no ecrã do IQ (1ª geração) Brain.
Isto controla a fonte aplicada à saída de texto subsequente quando se utilizam funções de texto no ecrã, como print.
void setFont(
fontType font );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Define a fonte para uma das seguintes opções:
|
Esta função não devolve qualquer valor.
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#
Define a espessura das linhas desenhadas e dos contornos das formas.
Available Functionsvoid setPenWidth(
uint32_t width );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A largura da caneta, em pixéis, varia de 0 a 32. |
Esta função não devolve qualquer valor.
NotesA largura da caneta aplica-se a funções de desenho como
drawLine,drawRectangleedrawCircle.
// 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#
Define a cor do texto, dos pixéis, das linhas e dos contornos das formas.
Available Functions1 — Define a cor da caneta utilizando um objeto de cor predefinido ou personalizado.
void setPenColor( const color& color );
2 — Define a cor da caneta utilizando um valor de cor hexadecimal.
void setPenColor( const char* color );
Parameters3 — Define a cor da caneta utilizando um valor de matiz.
void setPenColor( int hue );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Sets the pen color using a
|
|
|
Define a cor da caneta utilizando um valor de cor hexadecimal representado como uma string (por exemplo, |
|
|
Define a cor da caneta utilizando um valor inteiro de matiz no intervalo |
Esta função não devolve qualquer valor.
NotesO ecrã do IQ (1ª geração) Brain é monocromático, pelo que as cores especificadas não serão apresentadas no ecrã.
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(50, 50, 10, 20);
setFillColor#
Define a cor de preenchimento utilizada ao desenhar formas.
Available Functions1 — Define a cor de preenchimento utilizando um objeto de cor predefinido ou personalizado.
void setFillColor( const color& color );
2 — Define a cor de preenchimento utilizando um valor de cor hexadecimal.
void setFillColor( const char* color );
Parameters3 — Define a cor de preenchimento utilizando um valor de matiz.
void setFillColor( int hue );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Define a cor de preenchimento utilizando um objeto de cor
|
|
|
Define a cor de preenchimento utilizando um valor de cor hexadecimal representado como uma string (por exemplo, |
|
|
Define a cor de preenchimento utilizando um valor inteiro de matiz no intervalo |
Esta função não devolve qualquer valor.
NotesO ecrã do IQ (1ª geração) Brain é monocromático, pelo que as cores especificadas não serão apresentadas no ecrã.
// Draw a circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);
setOrigin#
Define a origem utilizada para desenhar gráficos no ecrã do cérebro.
Available Functionsvoid setOrigin(
int32_t x,
int32_t y );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A posição x da origem em relação ao canto superior esquerdo do ecrã do Brain varia de 0 a 159. |
|
|
A posição y da origem em relação ao canto superior esquerdo do ecrã do Brain varia de 0 a 107. |
Esta função não devolve qualquer valor.
NotesA origem predefinida é o canto superior esquerdo do ecrã na coordenada (0, 0).
A origem aplica-se a funções de coordenadas como
drawLine,drawRectangle,drawCircleeprintAt.A origem permanece em vigor até ser novamente alterada ou o projeto ser reiniciado.
setClipRegion#
Define uma área retangular no ecrã onde serão apresentados todos os desenhos e textos. Qualquer conteúdo fora dessa região não será mostrado.
Available Functionsvoid setClipRegion(
int x,
int y,
int width,
int height );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A coordenada x do canto superior esquerdo da região de recorte, dada como um número inteiro de 0 a 159. |
|
|
A coordenada y do canto superior esquerdo da região de recorte, dada como um número inteiro de 0 a 107. |
|
|
A largura da região de recorte em pixéis, dada como um número inteiro de 0 a 159. |
|
|
A altura da região de recorte em pixéis, dada como um número inteiro de 0 a 107. |
Esta função não devolve qualquer valor.
NotesAs funções de desenho são ainda executadas mesmo que estejam fora da região de recorte, mas apenas a porção dentro da região é visível.
As coordenadas
xeysão relativas à origem do ecrã actual, que pode ser alterada através desetOrigin.A região de recorte aplica-se apenas ao thread atual.
A definição de uma nova região de recorte substitui qualquer região de recorte definida anteriormente para o thread atual.
// 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#
Desenha um único pixel no ecrã do IQ (1ª geração) Brain na localização de pixel x e y especificada.
Available Functionsvoid drawPixel(
int x,
int y );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A coordenada x onde o pixel será desenhado, fornecida como um número inteiro de 0 a 159. |
|
|
A coordenada y onde o pixel será desenhado, fornecida como um número inteiro de 0 a 107. |
Esta função não devolve qualquer valor.
NotesO ecrã do IQ (1ª geração) Brain é monocromático, pelo que as cores especificadas não serão apresentadas no ecrã.
As coordenadas
xeysão relativas à origem do ecrã actual, que pode ser definida através desetOrigin.Se a localização do pixel especificada estiver fora dos limites do ecrã, o pixel não será desenhado.
// Draw one pixel at the center
// of the screen
Brain.Screen.drawPixel(80, 50);
drawLine#
Traça uma linha reta ligando dois pontos no ecrã do IQ (1ª geração) Brain.
Available Functionsvoid drawLine(
int x1,
int y1,
int x2,
int y2 );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A coordenada x inicial da linha, dada como um número inteiro de 0 a 159. |
|
|
A coordenada y inicial da linha, dada como um número inteiro de 0 a 107. |
|
|
A coordenada x final da recta, dada como um número inteiro de 0 a 159. |
|
|
A coordenada y final da recta, dada como um número inteiro de 0 a 107. |
Esta função não devolve qualquer valor.
NotesO ecrã do IQ (1ª geração) Brain é monocromático, pelo que as cores especificadas não serão apresentadas no ecrã.
A largura da linha é determinada pela largura da caneta actual definida com
setPenWidth.As coordenadas
xeysão relativas à origem do ecrã actual, que pode ser definida através desetOrigin.Se alguma parte da linha estiver fora dos limites do ecrã, apenas a parte visível será desenhada.
// Draw a line from the top left to
// bottom right of the screen
Brain.Screen.drawLine(0, 0, 159, 107);
drawRectangle#
Desenha um retângulo no ecrã do IQ (1ª geração) Brain na posição e tamanho especificados.
Available Functions1 — Desenha e preenche um retângulo utilizando a cor de preenchimento atualmente configurada.
void drawRectangle( int x, int y, int width, int height );
2 — Desenha e preenche um retângulo utilizando um objeto de cor pré-definido ou personalizado.
void drawRectangle( int x, int y, int width, int height, const color& color );
3 — Desenha e preenche um retângulo utilizando um valor de cor hexadecimal.
void drawRectangle( int x, int y, int width, int height, const char* color );
Parameters4 — Desenha e preenche um retângulo utilizando um valor de matiz.
void drawRectangle( int x, int y, int width, int height, int hue );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A coordenada x do canto superior esquerdo do retângulo, dada como um número inteiro de 0 a 159. |
|
|
A coordenada y do canto superior esquerdo do retângulo, dada como um número inteiro de 0 a 107. |
|
|
A largura do retângulo, dada como um número inteiro de 0 a 159. |
|
|
A altura do retângulo, dada como um número inteiro de 0 a 107. |
|
|
Preenche o retângulo utilizando um objeto de cor
|
|
|
Preenche o retângulo utilizando um valor de cor hexadecimal (por exemplo, |
|
|
Preenche o retângulo utilizando um valor de matiz no intervalo de |
Esta função não devolve qualquer valor.
NotesO ecrã do IQ (1ª geração) Brain é monocromático, pelo que as cores especificadas não serão apresentadas no ecrã.
A espessura do contorno é determinada pela largura da caneta actual definida com
setPenWidth.As coordenadas
xeysão relativas à origem do ecrã actual, que pode ser alterada através desetOrigin.Se alguma parte do retângulo estiver fora dos limites do ecrã, apenas a parte visível será desenhada.
// Draw a red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, red);
drawCircle#
Desenha um círculo no ecrã do IQ (1ª geração) Brain na posição e raio especificados.
Available Functions1 — Desenha e preenche um círculo utilizando a cor de preenchimento actualmente configurada.
void drawCircle( int x, int y, int radius );
2 — Desenha e preenche um círculo utilizando um objeto de cor pré-definido ou personalizado.
void drawCircle( int x, int y, int radius, const color& color );
3 — Desenha e preenche um círculo utilizando um valor de cor hexadecimal.
void drawCircle( int x, int y, int radius, const char* color );
Parameters4 — Desenha e preenche um círculo utilizando um valor de matiz.
void drawCircle( int x, int y, int radius, int hue );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A coordenada x do centro do círculo, dada como um número inteiro de 0 a 159. |
|
|
A coordenada y do centro do círculo, dada como um número inteiro de 0 a 107. |
|
|
O raio do círculo, dado como um número inteiro de 0 a 107 pixéis. |
|
|
Preenche o círculo utilizando um objeto de cor
|
|
|
Preenche o círculo utilizando um valor de cor hexadecimal (por exemplo, |
|
|
Preenche o círculo utilizando um valor de matiz no intervalo de |
Esta função não devolve qualquer valor.
NotesO ecrã do IQ (1ª geração) Brain é monocromático, pelo que as cores especificadas não serão apresentadas no ecrã.
A espessura do contorno é determinada pela largura da caneta actual definida com
setPenWidth.As coordenadas
xeysão relativas à origem do ecrã actual, que pode ser alterada através desetOrigin.
// Draw a green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, green);
render#
Activa o buffer duplo para o ecrã do Brain. Uma vez chamado, quaisquer funções de desenho (como texto ou formas) 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.
1 — Ativa o buffer duplo ou renderiza o buffer traseiro no ecrã.
bool render();
Parameters2 — Renderiza o buffer traseiro no ecrã com controlo sobre o comportamento de sincronização vertical e execução opcional do agendador.
bool render( bool bVsyncWait, bool bRunScheduler = true );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
|
|
|
Opcional.
|
Retorna um valor booleano indicando se os desenhos guardados no buffer foram renderizados com sucesso no ecrã:
true— Os desenhos foram renderizados com sucesso no ecrã.false— Os desenhos não puderam ser renderizados no ecrã.
Notes
A chamada do comando
renderexigirá que o comandorenderseja utilizado para o resto do projeto.
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();