Ecrã#

Introdução#

A classe screen é derivada da classe base brain. Controla a forma como o cérebro IQ (2ª geração) mostra texto, números e gráficos no seu ecrã integrado.

Por defeito, a fonte para impressão no Brain é monospaced small.

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

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 utilizando Brain.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.

  • drawImageFromFile — Desenha uma imagem de um ficheiro de cartão SD no ecrã.

  • render — Activa o buffer duplo ou renderiza o buffer traseiro no ecrã.

  • pressing — Retorna se o ecrã está a ser pressionado no momento.

  • xPosition — Retorna a coordenada x da pressão do ecrã mais recente.

  • yPosition — Retorna a coordenada y da pressão do ecrã mais recente.

  • pressed — Regista uma função de chamada de retorno a ser executada quando o ecrã é premida.

  • released — Regista uma função de retorno de chamada para ser executada quando o ecrã for libertado após ser pressionado.

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 (2ª geração) Brain.

Available Functions

1 — Imprime texto formatado utilizando literais de cadeias ou cadeias de leitura de leitura apenas, no estilo C.

void print(
    const char* format,
    ... );

2 — Imprime texto formatado utilizando matrizes de caracteres modificáveis.

void print(
    char* format,
    ... );

Parameters

Parâmetro

Tipo

Descrição

format

const char*

Uma string de formato fornecida como uma string literal ou string de leitura apenas no estilo C (por exemplo, “Score: %d”).

format

char*

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.

Return Values

Esta função não devolve qualquer valor.

Notes
  • A 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.

Examples
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");

Uma captura de ecrã do cérebro IQ (2ª geração) mostrando "Olá, robô!" impresso no ecrã no canto superior esquerdo em texto branco.

setCursor#

Move o cursor para uma linha e coluna específicas no ecrã do IQ (2ª geração) Brain. A próxima chamada print começará a imprimir nesse local.

Available Functions
void setCursor(
  int32_t row, 
  int32_t col );

Parameters

Parâmetro

Tipo

Descrição

row

int32_t

A linha para a qual mover o cursor.

col

int32_t

A coluna para a qual deve mover o cursor.

Return Values

Esta função não devolve qualquer valor.

Notes
  • Afeta 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 fonte padrão (mono20) utiliza 5 linhas e 16 colunas.

  • A chamada de `setCursor ) apenas afecta a posição da saída de texto subsequente.

Examples
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Repeatedly print the Brain timer at top-left
  while (true) {
    Brain.Screen.print("%d", Brain.Timer.time(seconds));
    Brain.Screen.newLine();
    wait(1, seconds);
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
  }
}

Uma captura de ecrã do cérebro IQ (2ª geração) mostrando 25 impresso no canto superior esquerdo do ecrã, nessa posição.

newLine#

Move o cursor para o início da linha seguinte no ecrã do Brain.

Available Functions
void newLine();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Esta função não devolve qualquer valor.

Notes
  • Se o cursor estiver no meio de uma frase, newLine limpará 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.

Examples
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

Uma captura de ecrã do ecrã do IQ (2ª geração) Brain mostrando duas linhas de texto branco no canto superior esquerdo. A linha superior diz Linha 1 e a segunda linha directamente abaixo dela diz Linha 2.

clearLine#

Limpa o texto de uma linha no ecrã do IQ (2ª geração) Brain.

Available Functions

1 — 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 );

5 — Limpa a linha especificada utilizando um valor de matiz.

void clearLine(
    int number,
    int hue );

Parameters

Parâmetro

Tipo

Descrição

number

int

Número da linha a limpar. A numeração das linhas começa em 1.

color

const color&

Limpa a linha utilizando um objeto de cor color As cores predefinidas incluem:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Isto também pode utilizar um objeto de cor personalizado.

color

const char*

Limpa a linha utilizando um valor de cor hexadecimal (por exemplo, “#000000”).

hue

int

Limpa a linha utilizando um valor inteiro de matiz no intervalo de 0a359, representando graus em torno de uma roda de cores.

Return Values

Esta função não devolve qualquer valor.

Notes
  • Apagar 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 valor do parâmetro de matiz hue baseia-se num círculo cromático circular, como se mostra abaixo, em que os valores representam graus em torno do círculo (por exemplo, vermelho próximo de 0°, verde próximo de 120° e azul próximo de 240°).

Uma roda de cores que mostra a gama de cores de 0 a 359, em que o vermelho é 0, o verde é 120 e o azul é 240.

Examples
// 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 linha onde o texto será impresso no ecrã do IQ (2ª geração) Brain.

Available Functions
int32_t row();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Retorna um valor int32_t que representa a linha onde o texto será impresso.

A numeração das linhas começa em 1.

Notes
  • A posição do cursor é baseada na fonte actual do ecrã .

  • O valor devolvido indica onde aparecerá a próxima saída impressa.

  • O valor da linha muda quando o texto é impresso ou quando setCursor é chamado.

Examples
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("row: ", Brain.Screen.row());

Uma captura de ecrã do IQ (2ª geração) Brain mostrando a linha de texto 3 em branco no lado esquerdo do ecrã, na posição da linha 3, coluna 12.

column#

Retorna a coluna onde o texto será impresso no ecrã do IQ (2ª geração) Brain.

Available Functions
int32_t column();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Retorna um valor int32_t que representa a coluna onde o texto será impresso.

A numeração das colunas começa em 1.

Notes
  • A posição do cursor é baseada na fonte actual do ecrã .

  • O 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.

Examples
// Display the cursor's current column
Brain.Screen.print("column: ", Brain.Screen.column());

Uma captura de ecrã do IQ (2ª geração) Brain mostrando a coluna: 9 em branco na parte superior do ecrã, na posição da linha 1, coluna 9.

getStringHeight#

Devolve a altura, em pixéis, de uma string quando renderizada no ecrã do IQ (2ª geração) Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parâmetro

Tipo

Descrição

cstr

const char*

O texto a medir, fornecido como uma string ao estilo C (por exemplo, “Hello”).

Return Values

Retorna um valor int32_t que representa a altura da string em pixéis quando renderizada no ecrã do Brain.

Notes
  • 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 (2ª geração) Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parâmetro

Tipo

Descrição

cstr

const char*

O texto a medir, fornecido como uma string ao estilo C (por exemplo, “Hello”).

Return Values

Retorna um valor int32_t que representa a largura da string em pixéis quando renderizada no ecrã do Brain.

Notes
  • 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 (2ª geração) Brain.

Available Functions

1 — Imprime a saída formatada na localização de pixel especificada.

void printAt(
    int32_t    x,
    int32_t    y,
    const char* format,
    ... );

2 — 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,
    ... );

Parameters

Parâmetro

Tipo

Descrição

x

int32_t

A posição x para impressão, referenciada à origem do ecrã.

y

int32_t

A posição y para impressão, em relação à origem do ecrã.

bOpaque

bool

Controla se o texto impresso é desenhado de forma opaca ou transparente:

  • true — O fundo do texto impresso é preenchido utilizando a cor de preenchimento actual.
  • false — O texto é desenhado de forma transparente e o fundo não é preenchido.

format

const char*

Uma string de formatação que controla o que é impresso no ecrã (por exemplo, “Score: %d”).

…

Um ou mais valores adicionais que são introduzidos na string de formato, separados por vírgulas.

Return Values

Esta função não devolve qualquer valor.

Notes
  • As coordenadas x e y são relativas à origem do ecrã actual, que pode ser alterada através de setOrigin.

  • 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.

Examples
// Print the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, 1);

Uma captura de ecrã do ecrã do IQ (2ª geração) Brain com texto branco que lê 1, impresso em (100, 40).

clearScreen#

Apaga todos os desenhos e textos do ecrã do Cérebro.

Available Functions

1 — 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 );

4 — Limpa o ecrã utilizando um valor de matiz.

void clearScreen(
    int hue );

Parameters

Parâmetro

Tipo

Descrição

color

const color&

Limpa o ecrã utilizando um objeto de cor color As cores predefinidas incluem:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Isto também pode utilizar um objeto de cor personalizado.

color

const char*

Limpa o ecrã utilizando um valor de cor hexadecimal representado como uma string (por exemplo, “#000000”).

hue

int

Limpa o ecrã utilizando um valor inteiro de matiz no intervalo de 0a359, representando graus em torno de uma roda de cores.

Return Values

Esta função não devolve qualquer valor.

Notes
  • O valor do parâmetro de matiz hue baseia-se num círculo cromático circular, como se mostra abaixo, em que os valores representam graus em torno do círculo (por exemplo, vermelho próximo de 0°, verde próximo de 120° e azul próximo de 240°).

Uma roda de cores que mostra a gama de cores de 0 a 359, em que o vermelho é 0, o verde é 120 e o azul é 240.

Examples
// 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);

Uma captura de ecrã do ecrã do IQ (2ª geração) Brain com toda a área imprimível a vermelho vivo.

setFont#

Define a fonte utilizada para o texto apresentado no ecrã do IQ (2ª geração) Brain.

Isto controla a fonte aplicada à saída de texto subsequente quando se utilizam funções de texto no ecrã, como print.

Available Functions
void setFont(
  fontType font );

Parameters

Parâmetro

Tipo

Descrição

font

fontType

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 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 Prop 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 Prop 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

Return Values

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");

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.

setPenWidth#

Define a espessura das linhas desenhadas e dos contornos das formas.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parâmetro

Tipo

Descrição

width

uint32_t

A largura da caneta, em pixéis, varia de 0 a 32.

Return Values

Esta função não devolve qualquer valor.

Notes Examples
// 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);

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.

setPenColor#

Define a cor do texto, dos pixéis, das linhas e dos contornos das formas.

Available Functions

1 — 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 );

3 — Define a cor da caneta utilizando um valor de matiz.

void setPenColor(
    int hue );

Parameters

Parâmetro

Tipo

Descrição

color

const color&

Sets the pen color using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Define a cor da caneta utilizando um valor de cor hexadecimal representado como uma string (por exemplo, “#FF0000”).

hue

int

Define a cor da caneta utilizando um valor inteiro de matiz no intervalo 0a359, representando graus em torno de uma roda de cores (por exemplo, 0 é vermelho, 120 é verde e 240 é azul).

Return Values

Esta função não devolve qualquer valor.

Notes
  • A cor padrão da caneta no início de um projeto é white.

  • A cor da caneta é utilizada para contornos de formas (como com drawCircle ou drawRectangle), saída de texto e numérica (com print e printAt), e pixels individuais desenhados com drawPixel.

  • O valor do parâmetro de matiz hue baseia-se num círculo cromático circular, como se mostra abaixo, em que os valores representam graus em torno do círculo (por exemplo, vermelho próximo de 0°, verde próximo de 120° e azul próximo de 240°).

Uma roda de cores que mostra a gama de cores de 0 a 359, em que o vermelho é 0, o verde é 120 e o azul é 240.

Examples
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(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.

setFillColor#

Define a cor de preenchimento utilizada ao desenhar formas.

Available Functions

1 — 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 );

3 — Define a cor de preenchimento utilizando um valor de matiz.

void setFillColor(
    int hue );

Parameters

Parâmetro

Tipo

Descrição

color

const color&

Define a cor de preenchimento utilizando um objeto de cor color As cores predefinidas incluem:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Define a cor de preenchimento utilizando um valor de cor hexadecimal representado como uma string (por exemplo, “#00FF00”).

hue

int

Define a cor de preenchimento utilizando um valor inteiro de matiz no intervalo 0a359, representando graus em torno de uma roda de cores (por exemplo, 0 é vermelho, 120 é verde e 240 é azul).

Return Values

Esta função não devolve qualquer valor.

Notes
  • A cor de preenchimento predefinida no início de um projeto é black.

  • A cor de preenchimento é utilizada para o interior das formas (como acontece com drawCircle ou drawRectangle).

  • A cor de preenchimento é utilizada como cor de fundo para o texto impresso (como em print e printAt).

    • Se for utilizado transparent com texto impresso, o fundo será black.

  • O valor do parâmetro de matiz hue baseia-se num círculo cromático circular, como se mostra abaixo, em que os valores representam graus em torno do círculo (por exemplo, vermelho próximo de 0°, verde próximo de 120° e azul próximo de 240°).

Uma roda de cores que mostra a gama de cores de 0 a 359, em que o vermelho é 0, o verde é 120 e o azul é 240.

Examples
// Draw a circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(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ã.

setOrigin#

Define a origem utilizada para o desenho e impressão baseada em coordenadas no ecrã do Brain.

Available Functions
void setOrigin(
  int32_t x,
  int32_t y );

Parameters

Parâmetro

Tipo

Descrição

x

int32_t

A posição x da origem em relação ao canto superior esquerdo do ecrã do Brain varia de 0 a 159.

y

int32_t

A posição y da origem em relação ao canto superior esquerdo do ecrã do Brain varia de 0 a 107.

Return Values

Esta função não devolve qualquer valor.

Notes
  • A origem predefinida é o canto superior esquerdo do ecrã na coordenada (0, 0).

  • A origem aplica-se a funções de coordenadas como drawLine, drawRectangle, drawCircle e printAt.

  • 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 Functions
void setClipRegion(
  int x,
  int y,
  int width,
  int height );

Parameters

Parâmetro

Tipo

Descrição

x

int

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

y

int

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

width

int

A largura da região de recorte em pixéis, dada como um número inteiro de 0 a 159.

height

int

A altura da região de recorte em pixéis, dada como um número inteiro de 0 a 107.

Return Values

Esta função não devolve qualquer valor.

Notes
  • As 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 x e y são relativas à origem do ecrã actual, que pode ser alterada através de setOrigin.

  • 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.

Examples
// 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!");

Uma captura de ecrã do IQ (2ª geração) Brain com texto branco que diz "Cortado" com um quadrado vermelho sólido diretamente por baixo no quadrante superior esquerdo, refletindo o que está impresso dentro da região de recorte.

drawPixel#

Desenha um pixel no ecrã do IQ (2ª geração) Brain na localização de pixel x e y selecionada.

Available Functions
void drawPixel(
  int x,
  int y );

Parameters

Parâmetro

Tipo

Descrição

x

int

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

y

int

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

Return Values

Esta função não devolve qualquer valor.

Notes
  • Os pixéis são desenhados utilizando a cor da caneta actual definida com setPenColor.

  • As coordenadas x e y são relativas à origem do ecrã actual, que pode ser definida através de setOrigin.

  • Se a localização do pixel especificada estiver fora dos limites do ecrã, o pixel não será desenhado.

Examples
// Draw one pixel at the center 
// of the screen
Brain.Screen.drawPixel(80, 50);

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

drawLine#

Traça uma linha reta ligando dois pontos no ecrã do IQ (2ª geração) Brain.

Available Functions
void drawLine(
  int x1,
  int y1,
  int x2,
  int y2 );

Parameters

Parâmetro

Tipo

Descrição

x1

int

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

y1

int

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

x2

int

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

y2

int

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

Return Values

Esta função não devolve qualquer valor.

Notes
  • As linhas são desenhadas utilizando a cor da caneta actual definida com setPenColor.

  • A largura da linha é determinada pela largura da caneta actual definida com setPenWidth.

  • As coordenadas x e y são relativas à origem do ecrã actual, que pode ser definida através de setOrigin.

  • Se alguma parte da linha estiver fora dos limites do ecrã, apenas a parte visível será desenhada.

Examples
// Draw a line from the top left to 
// bottom right of the screen
Brain.Screen.drawLine(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.

drawRectangle#

Desenha um retângulo no ecrã do IQ (2ª geração) Brain na posição e tamanho especificados.

Available Functions

1 — 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 );

4 — Desenha e preenche um retângulo utilizando um valor de matiz.

void drawRectangle(
    int x,
    int y,
    int width,
    int height,
    int hue );

Parameters

Parâmetro

Tipo

Descrição

x

int

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

y

int

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

width

int

A largura do retângulo, dada como um número inteiro de 0 a 159.

height

int

A altura do retângulo, dada como um número inteiro de 0 a 107.

color

const color&

Preenche o retângulo utilizando um objeto de cor color As cores predefinidas incluem:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Isto também pode utilizar um objeto de cor personalizado.

color

const char*

Preenche o retângulo utilizando um valor de cor hexadecimal (por exemplo, “#FF0000”).

hue

int

Preenche o retângulo utilizando um valor de matiz no intervalo de 0–359.

Return Values

Esta função não devolve qualquer valor.

Notes
  • O contorno do retângulo é desenhado utilizando a cor da caneta atual definida com setPenColor.

  • A espessura do contorno é determinada pela largura da caneta actual definida com setPenWidth.

  • Quando não é fornecido nenhum parâmetro de cor color , o interior do retângulo é preenchido utilizando a cor de preenchimento atual definida com setFillColor.

  • As coordenadas x e y são relativas à origem do ecrã actual, que pode ser alterada através de setOrigin.

  • Se alguma parte do retângulo estiver fora dos limites do ecrã, apenas a parte visível será desenhada.

  • O valor do parâmetro de matiz hue baseia-se num círculo cromático circular, como se mostra abaixo, em que os valores representam graus em torno do círculo (por exemplo, vermelho próximo de 0°, verde próximo de 120° e azul próximo de 240°).

Uma roda de cores que mostra a gama de cores de 0 a 359, em que o vermelho é 0, o verde é 120 e o azul é 240.

Examples
// Draw a red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, 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ã.

drawCircle#

Desenha um círculo no ecrã do IQ (2ª geração) Brain na posição e raio especificados.

Available Functions

1 — 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 );

4 — Desenha e preenche um círculo utilizando um valor de matiz.

void drawCircle(
    int x,
    int y,
    int radius,
    int hue );

Parameters

Parâmetro

Tipo

Descrição

x

int

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

y

int

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

radius

int

O raio do círculo, dado como um número inteiro de 0 a 107 pixéis.

color

const color&

Preenche o círculo utilizando um objeto de cor color As cores predefinidas incluem:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Isto também pode utilizar um objeto de cor personalizado.

color

const char*

Preenche o círculo utilizando um valor de cor hexadecimal (por exemplo, “#FF0000”).

hue

int

Preenche o círculo utilizando um valor de matiz no intervalo de 0–359.

Return Values

Esta função não devolve qualquer valor.

Notes
  • O contorno do círculo é desenhado utilizando a cor da caneta actual definida com setPenColor.

  • A espessura do contorno é determinada pela largura da caneta actual definida com setPenWidth.

  • Quando não é fornecido nenhum parâmetro de cor color , o interior do círculo é preenchido utilizando a cor de preenchimento actual definida com setFillColor.

  • As coordenadas x e y são relativas à origem do ecrã actual, que pode ser alterada através de setOrigin.

  • O valor do parâmetro de matiz hue baseia-se num círculo cromático circular, como se mostra abaixo, em que os valores representam graus em torno do círculo (por exemplo, vermelho próximo de 0°, verde próximo de 120° e azul próximo de 240°).

Uma roda de cores que mostra a gama de cores de 0 a 359, em que o vermelho é 0, o verde é 120 e o azul é 240.

Examples
// Draw a green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, 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ã.

drawImageFromFile#

Desenha uma imagem no ecrã do IQ (2ª geração) Brain utilizando um ficheiro de imagem armazenado no cartão SD.

Available Functions
bool drawImageFromFile(
  const char* name,
  int x,
  int y );

Parameters

Parâmetro

Tipo

Descrição

name

const char*

O nome do ficheiro da imagem no cartão SD. O ficheiro deve ter a extensão .bmp ou .png.

x

int

A coordenada x, em pixéis de 0 a 159, na qual será desenhada a margem esquerda da imagem.

y

int

A coordenada y, em pixéis de 0 a 107, na qual será desenhada a margem superior da imagem.

Return Values

Retorna um valor booleano indicando se a imagem foi desenhada com sucesso:

  • true — A imagem foi carregada e desenhada com sucesso no ecrã.
  • false — A imagem não pôde ser desenhada (por exemplo, se o ficheiro não existir ou for inválido).

Notes
  • Os formatos de imagem suportados são .bmp e .png.

  • O tamanho do ficheiro de imagem não deve exceder 512 KB.

    • Recomenda-se a codificação RLE de 8 bits para minimizar o tamanho do ficheiro.

  • As dimensões máximas de imagem suportadas são o tamanho do ecrã do Brain (160 x 108 pixels).

  • As coordenadas x e y são relativas à origem do ecrã actual, que pode ser alterada através de setOrigin.

Examples
// Draw a bmp file on the Brain's screen at coordinate 0, 0
Brain.Screen.drawImageFromFile("test_image.bmp", 0, 0);

render#

Activa o buffer duplo para o ecrã do Brain. Uma vez acionado, quaisquer funções 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.

Available Functions

1 — Ativa o buffer duplo ou renderiza o buffer traseiro no ecrã.

bool render();

2 — 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 );

Parameters

Parâmetro

Tipo

Descrição

bVsyncWait

bool

​

  • true — Aguarde pela atualização vertical do ecrã antes de renderizar para reduzir o tearing visual.
  • false — Não espere pela atualização vertical do ecrã antes de renderizar.

bRunScheduler

bool

Opcional.

  • true (padrão) — Permitir que as tarefas em segundo plano sejam executadas enquanto se aguarda a renderização.
  • false — Não permitir que as tarefas em segundo plano sejam executadas enquanto se aguarda a renderização.

Return Values

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 render exigirá que o comando render seja utilizado para o resto do projeto.

    Examples
    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();