Ecrã#

Introdução#

A classe screen é derivada da classe base brain. Ela controla a forma como o EXP Brain mostra texto, números e gráficos no seu ecrã.

O ecrã do EXP Brain tem um número predefinido de linhas e colunas para utilizar ao imprimir texto no seu ecrã.

Por defeito, o tipo de letra para impressão no Brain é mono20 , que tem 7 linhas e 20 colunas.

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

Um diagrama de grelha rotulado do ecrã VEX Brain mostrando linhas, colunas, dimensões em pixéis e coordenadas, com linhas vermelhas a delinear a grelha.

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 EXP 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ã.

Antes de chamar qualquer função membro de screen , deve ser criada uma instância brain , como se mostra abaixo:

// Create the EXP Brain
brain Brain = brain();

print#

Apresenta texto, números ou valores booleanos no ecrã do EXP 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ã.

  • Printed text uses the current screen font.

  • 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 EXP Brain mostrando "Olá, Robot!" impresso no ecrã no canto superior esquerdo em texto branco.

setCursor#

Move o cursor para uma linha e coluna específicas no ecrã EXP 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 12 linhas e 48 colunas.

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

Examples
// Display text starting at Row 3 Column 10
Brain.Screen.setCursor(3, 10);
Brain.Screen.print("R3, C10");

Uma captura de ecrã do EXP Brain que mostra a Linha 3, Coluna 12 impressa na parte superior, perto do centro 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ã EXP Brain que mostra 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ã EXP 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

O 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 EXP 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, 10);
Brain.Screen.print(Brain.Screen.row());

Uma captura de ecrã do EXP Brain que mostra o texto 3 em branco no quadrante superior esquerdo do ecrã, na posição da linha 3, coluna 10.

column#

Retorna a coluna onde o texto será impresso no ecrã do EXP 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.setCursor(3, 10);
Brain.Screen.print(Brain.Screen.column());

Uma captura de ecrã do EXP Brain que mostra o texto 10 em branco no quadrante superior esquerdo do ecrã, na posição da linha 3, coluna 10.

getStringHeight#

Devolve a altura, em pixéis, de uma string quando renderizada no ecrã do EXP 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#

Retorna a largura, em pixéis, de uma string quando renderizada no ecrã do EXP 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 EXP 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.

  • Printed text uses the current screen font.

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

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

setFont#

Define a fonte utilizada para o texto apresentado no ecrã do EXP 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.

O ecrã do cérebro imprimiu números e letras com tipo de letra mono de tamanho 12. Mostra de A a Z e todos os números. Na parte inferior do ecrã, está escrito 9 linhas, 26 colunas.
mono12

O ecrã do cérebro imprimiu números e letras com tipo de letra mono tamanho 15. Mostra de A a T e todos os números. Na parte inferior do ecrã, está escrito 7 linhas, 22 colunas.
mono15

O ecrã do cérebro imprimiu números e letras com tipo de letra mono de tamanho 20. Mostra de A a P e todos os números. Na parte inferior do ecrã, está escrito 5 linhas, 16 colunas.
mono20

O ecrã do cérebro apresenta números e letras impressos com um tipo de letra mono de tamanho 30. Mostra de A a J. Na parte inferior do ecrã, está escrito R:3 C:10.
mono30

Números e letras impressos no ecrã do cérebro com tipo de letra mono de tamanho 40. Na parte inferior do ecrã, está escrito R:2 C:8.
mono40

Números e letras impressos no ecrã do cérebro com tipo de letra mono de tamanho 60. Apenas é apresentado o MON60.
mono60

O ecrã do cérebro imprimiu números e letras com tipo de letra tamanho prop 20. Mostra de A a W e todos os números. Na parte inferior do ecrã, está escrito 5 linhas, 16 colunas.
prop20

O ecrã do cérebro imprimiu números e letras com tipo de letra tamanho prop 30. Mostra de A a P. Na parte inferior do ecrã, está escrito R:3 C:10.
prop30

Números e letras impressos no ecrã do cérebro com letra de tamanho prop 40. Na parte inferior do ecrã, está escrito R:2 C:8.
prop40

Números e letras impressos no ecrã do cérebro com tipo de letra tamanho prop 60. Apenas é apresentado o PROP60.
prop60

Return Values

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

Examples
// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

Uma captura de ecrã do ecrã EXP Brain que mostra o texto branco VEX numa fonte maior que a padrão, no canto superior esquerdo.

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 rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(20, 20, 75, 50);

Uma captura de ecrã do ecrã EXP Brain que mostra um retângulo com margens grossas impresso no lado esquerdo do ecrã.

setPenColor#

Define a cor da caneta utilizada para desenhar linhas, formas e texto.

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&

Define a cor da caneta 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*

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
// Draw a rectangle with orange borders
Brain.Screen.setPenColor(orange);
Brain.Screen.drawRectangle(20, 20, 75, 50);

Uma captura de ecrã do ecrã EXP Brain que mostra um retângulo desenhado a laranja no lado esquerdo do ecrã.

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
Isto também pode utilizar um objeto de cor personalizado.

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 rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(20, 20, 75, 50);

Uma captura de ecrã do ecrã EXP Brain que mostra um retângulo preenchido com roxo no lado esquerdo do ecrã.

setOrigin#

Define a origem utilizada para desenhar gráficos no ecrã do cérebro.

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

drawPixel#

Desenha um pixel no ecrã do EXP Brain na localização de pixel selecionada nos eixos x e y.

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 the pixels marking the corners of a square
Brain.Screen.drawPixel(50, 50);
Brain.Screen.drawPixel(50, 75);
Brain.Screen.drawPixel(75, 50);
Brain.Screen.drawPixel(75, 75);

Uma captura de ecrã do ecrã EXP Brain que mostra uma variedade de pixéis que representam os cantos de um quadrado perto do centro do ecrã.

drawLine#

Desenha uma linha reta ligando dois pontos no ecrã do EXP 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ã EXP Brain mostra uma fina linha diagonal no centro, do canto superior esquerdo ao canto inferior direito.

drawRectangle#

Desenha um retângulo no ecrã do EXP 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 rectangle on the screen
Brain.Screen.drawRectangle(20, 20, 80, 30);

Uma captura de ecrã do ecrã do EXP Brain mostra um retângulo com uma fina margem branca impresso no quadrante superior esquerdo.

drawCircle#

Desenha um círculo no ecrã do EXP 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 circle on the screen
Brain.Screen.drawCircle(80, 50, 20);

Uma captura de ecrã do ecrã EXP Brain mostra um círculo com uma fina borda branca desenhada no centro.

drawImageFromFile#

Desenha uma imagem no ecrã EXP 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 (aproximadamente 159 x 107 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();