Pantalla#

Introducción#

La clase screen se deriva de la clase base brain. Controla cómo el cerebro IQ (2nd gen) muestra texto, números y gráficos en su pantalla integrada.

De forma predeterminada, la fuente para imprimir en el cerebro es monospaced small.

Para el dibujo, la resolución del cerebro es de 160 x 108 píxeles.

Acceso#

The screen class can be accessed by:

Brain.Screen

Observaciones#

  • El objeto screen lo proporciona el Cerebro. No se construye directamente.

  • Los proyectos utilizan un único objeto Brain global, por lo que las funciones de pantalla se denominan Brain.Screen.

Ejemplo#

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

Funciones de los miembros#

La clase screen incluye las siguientes funciones miembro:

  • print — Imprime texto formateado, números o valores booleanos en la pantalla Brain.

  • setCursor — Mueve el cursor de texto a una fila y columna especificadas.

  • newLine: borra el resto de la línea actual y mueve el cursor a la siguiente línea.

  • clearLine: borra el resto de la línea actual o borra una línea especificada.

  • row — Devuelve la fila donde se imprimirá el texto.

  • column — Devuelve la columna donde se imprimirá el texto.

  • getStringHeight — Devuelve la altura de una cadena en píxeles utilizando la fuente actual.

  • getStringWidth — Devuelve el ancho de una cadena en píxeles utilizando la fuente actual.

  • printAt — Imprime texto formateado en una ubicación de píxeles x, y (opcionalmente opaco).

  • clearScreen — Borra toda la pantalla (opcionalmente a un color especificado).

  • setFont — Establece la fuente utilizada para imprimir en la pantalla.

  • setPenWidth — Establece el grosor de las líneas dibujadas y los contornos de forma.

  • setPenColor: establece el color del texto, los píxeles, las líneas y los contornos de forma.

  • setFillColor — Establece el color de relleno para formas dibujadas y fondos de texto impreso.

  • setOrigin — Establece el origen utilizado para las coordenadas de la pantalla.

  • setClipRegion — Restringe la salida de la pantalla a una región rectangular.

  • drawPixel — Dibuja un píxel en una coordenada.

  • drawLine — Dibuja una línea entre dos puntos.

  • drawRectangle — Dibuja un rectángulo en una ubicación x, y con un tamaño especificado.

  • drawCircle — Dibuja un círculo en una ubicación x, y con un radio especificado.

  • drawImageFromFile — Dibuja una imagen de un archivo de tarjeta SD en la pantalla.

  • render: habilita el doble almacenamiento en búfer o representa el búfer posterior en la pantalla.

  • pressing — Devuelve si la pantalla se está presionando actualmente.

  • xPosition — Devuelve la coordenada x de la prensa de pantalla más reciente.

  • yPosition — Devuelve la coordenada y de la prensa de pantalla más reciente.

  • pressed — Registra una función de devolución de llamada para que se ejecute cuando se presiona la pantalla.

  • released: registra una función de devolución de llamada para que se ejecute cuando se libera la pantalla después de presionarla.

Before calling any screen member functions, a brain instance must be created, as shown below:

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

print#

Muestra texto, números o valores booleanos en la pantalla IQ (2nd gen) Brain.

Available Functions

1 — Imprime texto formateado usando literales de cadena o cadenas de estilo C de solo lectura.

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

2 — Imprime texto formateado utilizando matrices de caracteres modificables.

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

Parameters

Parámetro

Tipo

Descripción

format

const char*

Una cadena de formato proporcionada como un literal de cadena o una cadena de estilo C de solo lectura (por ejemplo, “Score: %d”).

format

char*

Una cadena de formato proporcionada como una matriz de caracteres modificable.

…

Uno o más valores adicionales que se insertan en la cadena de formato, separados por comas.

Return Values

Esta función no devuelve un valor.

Notes
  • La salida comienza en la posición actual del cursor en la pantalla.

  • El texto impreso utiliza la fuente de la pantalla actual.

  • El texto impreso utiliza el color actual del bolígrafo.

  • El texto impreso con print se imprime con un fondo, y el color de fondo está determinado por el color de relleno actual.

  • Cuando se utiliza una cadena de formato, el número y los tipos de valores pasados deben coincidir con los especificadores de formato en la cadena.

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

Una captura de pantalla del cerebro de IQ (2ª generación) que muestra Hello, Robot! impresa en la pantalla en la esquina superior izquierda en texto blanco.

setCursor#

Mueve el cursor a una fila y columna específicas en la pantalla del cerebro IQ (2.ª generación). La siguiente llamada a print comenzará a imprimir en esa ubicación.

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

Parameters

Parámetro

Tipo

Descripción

row

int32_t

La fila a la que mover el cursor.

col

int32_t

La columna a la que mover el cursor.

Return Values

Esta función no devuelve un valor.

Notes
  • Afecta dónde comienza la salida de texto posterior cuando se usa print.

  • Las filas y columnas se basan en la fuente de pantalla establecida actualmente.

  • La fuente predeterminada (mono20) utiliza 5 filas y 16 columnas.

  • Llamar a setCursor afecta solo a la posición de la salida de texto posterior.

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

Una captura de pantalla del cerebro IQ (2ª generación) que muestra 25 impresos en la parte superior izquierda de la pantalla, en esa posición.

newLine#

Mueve el cursor al comienzo de la siguiente fila en la pantalla Cerebro.

Available Functions
void newLine();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Esta función no devuelve un valor.

Notes
  • Si el cursor está en el medio de una oración, newLine borrará el resto de la fila después del cursor antes de pasar a la siguiente fila.

  • Después de llamar a newLine, el cursor se coloca en la primera columna de la siguiente línea.

  • La posición del cursor y la numeración de las filas se establecen mediante setCursor.

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

Una captura de pantalla de la pantalla IQ (2nd gen) Brain que muestra dos líneas de texto blanco en la esquina superior izquierda. La línea superior dice Línea 1, y la segunda línea directamente debajo dice Línea 2.

clearLine#

Borra el texto de una fila en la pantalla IQ (2nd gen) Brain.

Available Functions

1 — Borra el resto de la línea actual de la posición del cursor.

void clearLine();

2 — Borra la fila especificada con el color de relleno configurado actualmente.

void clearLine(
    int number );

3 — Borra la fila especificada con un objeto predefinido o custom color.

void clearLine(
    int          number,
    const color& color );

4 — Borra la fila especificada con un valor de color hexadecimal.

void clearLine(
    int         number,
    const char* color );

5 — Borra la fila especificada con un valor de tono.

void clearLine(
    int number,
    int hue );

Parameters

Parámetro

Tipo

Descripción

number

int

El número de fila a borrar. La numeración de filas comienza en 1.

color

const color&

Borra la fila usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
También se puede usar un objeto de color personalizado.

color

const char*

Borra la fila utilizando un valor de color hexadecimal (por ejemplo, “#000000”).

hue

int

Borra la fila utilizando un valor de tono entero en el rango de 0359, que representa grados alrededor de una rueda de color.

Return Values

Esta función no devuelve un valor.

Notes
  • Borrar una línea no cambia la posición actual del cursor.

  • La posición del cursor y la numeración de las filas se establecen mediante setCursor.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 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#

Devuelve la fila donde se imprimirá el texto en la pantalla IQ (2nd gen) Brain.

Available Functions
int32_t row();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Devuelve un int32_t que representa la fila donde se imprimirá el texto.

La numeración de filas comienza en 1.

Notes
  • La posición del cursor se basa en la fuente de la pantalla actual.

  • El valor devuelto indica dónde aparecerá la siguiente salida impresa.

  • El valor de la fila cambia cuando se imprime texto o cuando se llama a setCursor.

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

Una captura de pantalla de la pantalla IQ (2ª generación) Brain que muestra el texto de la fila 3 en blanco en el lado izquierdo de la pantalla, en la posición de la columna 12 de la fila 3.

column#

Devuelve la columna donde se imprimirá el texto en la pantalla IQ (2nd gen) Brain.

Available Functions
int32_t column();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Devuelve un int32_t que representa la columna donde se imprimirá el texto.

La numeración de columnas comienza en 1.

Notes
  • La posición del cursor se basa en la fuente de la pantalla actual.

  • El valor devuelto indica dónde aparecerá la siguiente salida impresa.

  • El valor de la columna cambia cuando se imprime texto o cuando se llama a setCursor.

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

Una captura de pantalla de la pantalla IQ (2ª generación) Brain que muestra la columna: 9 en blanco en la parte superior de la pantalla, en la posición 9 de la columna de la fila 1.

getStringHeight#

Devuelve la altura, en píxeles, de una cadena cuando se representa en la pantalla Brain de IQ (2ª generación).

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parámetro

Tipo

Descripción

cstr

const char*

El texto a medir, proporcionado como una cadena de estilo C (por ejemplo, “Hello”).

Return Values

Devuelve un int32_t que representa la altura de la cadena en píxeles cuando se representa en la pantalla Cerebro.

Notes
  • La altura devuelta depende de la fuente de pantalla seleccionada actualmente.

  • Esta función mide la cadena sin dibujarla en la pantalla.

  • La altura devuelta refleja cómo aparecería la cadena cuando se imprima.

getStringWidth#

Devuelve el ancho, en píxeles, de una cadena cuando se representa en la pantalla Brain de IQ (2ª generación).

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parámetro

Tipo

Descripción

cstr

const char*

El texto a medir, proporcionado como una cadena de estilo C (por ejemplo, “Hello”).

Return Values

Devuelve un int32_t que representa el ancho de la cadena en píxeles cuando se representa en la pantalla Cerebro.

Notes
  • El ancho devuelto depende de la fuente de pantalla seleccionada actualmente.

  • Esta función mide la cadena sin dibujarla en la pantalla.

  • El ancho devuelto refleja cómo aparecería la cadena cuando se imprima.

printAt#

Imprime texto, números o valores booleanos en una coordenada específica en la pantalla IQ (2nd gen) Brain.

Available Functions

1 — Imprime la salida formateada en la ubicación de píxel especificada.

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

2 — Imprime la salida formateada en la ubicación de píxel especificada y establece si el fondo del texto es opaco o transparente.

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

Parameters

Parámetro

Tipo

Descripción

x

int32_t

La posición x para imprimir, referenciada al origen de la pantalla.

y

int32_t

La posición y para imprimir, referenciada al origen de la pantalla.

bOpaque

bool

Controla si el texto impreso se dibuja de forma opaca o transparente:

  • true — El fondo del texto impreso se rellena con el color de relleno actual.
  • false — El texto se dibuja de forma transparente y el fondo no se rellena.

format

const char*

Una cadena de formato que controla lo que se imprime en la pantalla (por ejemplo, “Score: %d”).

…

Uno o más valores adicionales que se insertan en la cadena de formato, separados por comas.

Return Values

Esta función no devuelve un valor.

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

Una captura de pantalla de la pantalla IQ (2ª generación) Brain con texto blanco que dice 1, impresa en (100, 40).

clearScreen#

Borra todos los dibujos y el texto de la pantalla del cerebro.

Available Functions

1 — Borra la pantalla a negro.

void clearScreen();

2 — Borra la pantalla con un objeto predefinido o custom color.

void clearScreen(
    const color& color );

3 — Borra la pantalla con un valor de color hexadecimal.

void clearScreen(
    const char* color );

4 — Borra la pantalla con un valor de tono.

void clearScreen(
    int hue );

Parameters

Parámetro

Tipo

Descripción

color

const color&

Borra la pantalla usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
También puede usar un objeto de color personalizado.

color

const char*

Borra la pantalla utilizando un valor de color hexadecimal representado como una cadena (por ejemplo, “#000000”).

hue

int

Borra la pantalla utilizando un valor de tono entero en el rango de 0359, que representa grados alrededor de una rueda de color.

Return Values

Esta función no devuelve un valor.

Notes
  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 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);

Una captura de pantalla de la pantalla IQ (2ª generación) Brain con toda el área imprimible en rojo brillante.

setFont#

Establece la fuente utilizada para el texto que se muestra en la pantalla IQ (2nd gen) Brain.

Esto controla la fuente aplicada a la salida de texto posterior cuando se utilizan funciones de texto de pantalla como print.

Available Functions
void setFont(
  fontType font );

Parameters

Parámetro

Tipo

Descripción

font

fontType

Establece la fuente en uno de los siguientes:

  • mono12
  • mono15
  • mono20
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • mono30
Estas opciones se muestran a continuación.

Una captura de pantalla de la pantalla VEX IQ Brain con una serie de números y letras en fuente Mono 12. Las letras A-Z están en una línea, abarcando el ancho de la pantalla. La esquina inferior izquierda indica 26 caracteres de ancho y 9 filas.
mono12

La misma captura de pantalla que la anterior, ahora con fuente Mono 15. Las letras A-T están en una línea, abarcando el ancho de la pantalla. La esquina inferior izquierda indica 20 caracteres de ancho y 7 filas.
mono15

La misma captura de pantalla que la anterior, ahora con fuente Mono 20. Las letras A-P están en una línea, abarcando el ancho de la pantalla. La esquina inferior izquierda indica 16 caracteres de ancho y 5 filas.
mono20

La misma captura de pantalla que la anterior, ahora con fuente Mono 30. Los números del 1 al 9 y un 0 adicional están en una línea, que abarca el ancho de la pantalla. La esquina inferior izquierda indica 3 filas.
mono30

La misma captura de pantalla que la anterior, ahora con fuente Mono 40. Los números del 1 al 8 están en la segunda línea, abarcando el ancho de la pantalla.
mono40

La misma captura de pantalla que la anterior, ahora con fuente Mono 60. La pantalla muestra MN 60 en letra grande, ocupando casi toda la mitad superior de la pantalla.
mono60

La misma captura de pantalla que la anterior, ahora con la fuente de la Propuesta 20. Las letras A-W están en una línea, abarcando el ancho de la pantalla. La esquina inferior izquierda indica 26 caracteres de ancho y 5 filas.
prop20

La misma captura de pantalla que la anterior, ahora con la fuente de la Propuesta 30. Los números del 1 al 9 se repiten dos veces en una línea, abarcando el ancho de la pantalla. La esquina inferior izquierda indica 18 caracteres de ancho y 3 filas.
prop30

La misma captura de pantalla que la anterior, ahora con la fuente de la Propuesta 40. La pantalla lee la Propuesta 40 en la línea superior e indica 14 caracteres y 2 filas en la segunda.
prop40

La misma captura de pantalla que la anterior, ahora con la fuente de la Propuesta 60. La pantalla dice PROP 60 en letra grande, ocupando casi toda la mitad superior de la pantalla.
prop60

Return Values

Esta función no devuelve un 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");

Una captura de pantalla de la pantalla IQ Brain con texto blanco en dos líneas en la esquina superior izquierda. La primera línea dice Mono Medium y la segunda línea directamente debajo dice Prop Medium en una fuente más pequeña.

setPenWidth#

Establece el grosor de las líneas dibujadas y los contornos de forma.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parámetro

Tipo

Descripción

width

uint32_t

El ancho del lápiz, en píxeles, de 0 a 32.

Return Values

Esta función no devuelve un 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);

Una captura de pantalla de la pantalla IQ Brain con dos círculos blancos impresos en la mitad inferior de la pantalla. El círculo de la izquierda está dibujado con un borde más estrecho que el de la derecha.

setPenColor#

Establece el color del texto, los píxeles, las líneas y los contornos de forma.

Available Functions

1 — Establece el color del bolígrafo mediante un objeto predefinido o color personalizado.

void setPenColor(
    const color& color );

2 — Establece el color del bolígrafo utilizando un valor de color hexadecimal.

void setPenColor(
    const char* color );

3 — Establece el color del bolígrafo utilizando un valor de tono.

void setPenColor(
    int hue );

Parameters

Parámetro

Tipo

Descripción

color

const color&

Establece el color del lápiz usando un objeto de color color Los colores predefinidos incluyen:

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

color

const char*

Establece el color del lápiz utilizando un valor de color hexadecimal representado como una cadena (por ejemplo, “#FF0000”).

hue

int

Establece el color del lápiz usando un valor de tono entero en el rango 0–359, que representa grados alrededor de una rueda de color (por ejemplo, 0 es rojo, 120 es verde y 240 es azul).

Return Values

Esta función no devuelve un valor.

Notes
  • El color predeterminado de la pluma al comienzo de un proyecto es el white.

  • El color del bolígrafo se utiliza para contornos de formas (como con drawCircle o drawRectangle), texto y salida numérica (con print y printAt), y píxeles individuales dibujados con drawPixel.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(50, 50, 10, 20);

Una captura de pantalla de la pantalla IQ Brain con dos pequeños rectángulos dibujados en la mitad inferior de la pantalla. El rectángulo de la izquierda es azul y el de la derecha es blanco.

setFillColor#

Establece el color de relleno utilizado cuando se dibujan formas.

Available Functions

1 — Establece el color de relleno usando un objeto predefinido o custom color.

void setFillColor(
    const color& color );

2 — Establece el color de relleno utilizando un valor de color hexadecimal.

void setFillColor(
    const char* color );

3 — Establece el color de relleno usando un valor de tono.

void setFillColor(
    int hue );

Parameters

Parámetro

Tipo

Descripción

color

const color&

Establece el color de relleno usando un objeto de color color Los colores predefinidos incluyen:

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

color

const char*

Establece el color de relleno utilizando un valor de color hexadecimal representado como una cadena (por ejemplo, “#00FF00”).

hue

int

Establece el color de relleno usando un valor de tono entero en el rango 0–359, que representa grados alrededor de una rueda de color (por ejemplo, 0 es rojo, 120 es verde y 240 es azul).

Return Values

Esta función no devuelve un valor.

Notes
  • El color de relleno predeterminado al comienzo de un proyecto es black.

  • El color de relleno se utiliza para el interior de las formas (como con drawCircle o drawRectangle).

  • El color de relleno se utiliza como color de fondo para el texto impreso (como con print y printAt).

    • Si se utiliza transparent con texto impreso, el fondo será black.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Draw a circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);

Una captura de pantalla de la pantalla IQ Brain con un círculo amarillo brillante con un delgado borde blanco dibujado en la mitad izquierda de la pantalla.

setOrigin#

Establece el origen utilizado para el dibujo y la impresión basada en coordenadas en la pantalla Brain.

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

Parameters

Parámetro

Tipo

Descripción

x

int32_t

La posición x del origen en relación con la esquina superior izquierda de la pantalla Cerebro de 0 a 159.

y

int32_t

La posición y del origen en relación con la esquina superior izquierda de la pantalla Cerebro de 0 a 107.

Return Values

Esta función no devuelve un valor.

Notes
  • El origen predeterminado es la esquina superior izquierda de la pantalla en la coordenada (0, 0).

  • El origen se aplica a funciones de coordenadas como drawLine, drawRectangle, drawCircle, y printAt.

  • El origen permanece vigente hasta que se cambie de nuevo o se restablezca el proyecto.

setClipRegion#

Define un área rectangular en la pantalla donde se confinarán todos los dibujos y el texto. No se mostrará ningún contenido fuera de esta región.

Available Functions
void setClipRegion(
  int x,
  int y,
  int width,
  int height );

Parameters

Parámetro

Tipo

Descripción

x

int

La coordenada x de la esquina superior izquierda de la región del clip, dada como un número entero de 0 a 159.

y

int

La coordenada y de la esquina superior izquierda de la región del clip, dada como un número entero de 0 a 107.

width

int

El ancho de la región del clip en píxeles, dado como un número entero de 0 a 159.

height

int

La altura de la región del clip en píxeles, dada como un número entero de 0 a 107.

Return Values

Esta función no devuelve un valor.

Notes
  • Las funciones de dibujo aún se ejecutan incluso si caen fuera de la región del clip, pero solo la parte dentro de la región es visible.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede cambiar utilizando setOrigin.

  • La región de clip se aplica solo al subproceso actual.

  • Establecer una nueva región de clip reemplaza cualquier región de clip establecida previamente para el subproceso actual.

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

Una captura de pantalla de la pantalla de IQ (2ª generación) Brain con texto blanco que dice Corte de con un cuadrado rojo sólido directamente debajo de él en el cuadrante superior izquierdo, reflejando lo que se imprime dentro de la región del clip.

drawPixel#

Dibuja un píxel en la pantalla IQ (2ª generación) Brain en la ubicación de píxeles x e y seleccionada.

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

Parameters

Parámetro

Tipo

Descripción

x

int

La coordenada x donde se dibujará el píxel, dada como un número entero de 0 a 159.

y

int

La coordenada y donde se dibujará el píxel, dada como un número entero de 0 a 107.

Return Values

Esta función no devuelve un valor.

Notes
  • Los píxeles se dibujan utilizando el color del lápiz actual configurado con setPenColor.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede configurar utilizando setOrigin.

  • Si la ubicación de píxel especificada está fuera de los límites de la pantalla, el píxel no se dibuja.

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

Una captura de pantalla de la pantalla IQ Brain con un pequeño punto blanco en el centro de la pantalla.

drawLine#

Dibuja una línea recta que conecta dos puntos en la pantalla IQ (2nd gen) Brain.

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

Parameters

Parámetro

Tipo

Descripción

x1

int

La coordenada x inicial de la línea, dada como un número entero de 0 a 159.

y1

int

La coordenada y inicial de la línea, dada como un número entero de 0 a 107.

x2

int

La coordenada x final de la línea, dada como un número entero de 0 a 159.

y2

int

La coordenada y final de la línea, dada como un número entero de 0 a 107.

Return Values

Esta función no devuelve un valor.

Notes
  • Las líneas se dibujan utilizando el color de pluma actual configurado con setPenColor.

  • El ancho de la línea está determinado por el ancho actual del bolígrafo establecido con setPenWidth.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede configurar utilizando setOrigin.

  • Si alguna parte de la línea se encuentra fuera de los límites de la pantalla, solo se dibuja la parte visible.

Examples
// Draw a line from the top left to 
// bottom right of the screen
Brain.Screen.drawLine(0, 0, 159, 107);

Una captura de pantalla de la pantalla IQ Brain con una línea diagonal blanca dibujada desde la esquina superior izquierda hasta la esquina inferior derecha.

drawRectangle#

Dibuja un rectángulo en la pantalla IQ (2ª generación) Brain en la posición y el tamaño especificados.

Available Functions

1 — Dibuja y rellena un rectángulo con el color de relleno configurado actualmente.

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

2 — Dibuja y rellena un rectángulo con un objeto predefinido o custom color.

void drawRectangle(
    int           x,
    int           y,
    int           width,
    int           height,
    const color&  color );

3 — Dibuja y rellena un rectángulo con un valor de color hexadecimal.

void drawRectangle(
    int           x,
    int           y,
    int           width,
    int           height,
    const char*   color );

4 — Dibuja y rellena un rectángulo con un valor de tono.

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

Parameters

Parámetro

Tipo

Descripción

x

int

La coordenada x de la esquina superior izquierda del rectángulo, dada como un número entero de 0 a 159.

y

int

La coordenada y de la esquina superior izquierda del rectángulo, dada como un número entero de 0 a 107.

width

int

El ancho del rectángulo, dado como un número entero de 0 a 159.

height

int

La altura del rectángulo, dada como un número entero de 0 a 107.

color

const color&

Rellena el rectángulo usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
También se puede usar un objeto de color personalizado.

color

const char*

Rellena el rectángulo con un valor de color hexadecimal (por ejemplo, “#FF0000”).

hue

int

Rellena el rectángulo utilizando un valor de tono en el rango de 0a359.

Return Values

Esta función no devuelve un valor.

Notes
  • El contorno del rectángulo se dibuja utilizando el color del bolígrafo actual establecido con setPenColor.

  • El grosor del contorno está determinado por el ancho actual del bolígrafo establecido con setPenWidth.

  • Cuando no se proporciona ningún parámetro de color, el interior del rectángulo se rellena utilizando el conjunto de colores de relleno actual con setFillColor.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede cambiar utilizando setOrigin.

  • Si alguna parte del rectángulo se encuentra fuera de los límites de la pantalla, solo se dibuja la parte visible.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Draw a red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, red);

Una captura de pantalla de la pantalla de IQ Brain con un gran rectángulo rojo con un delgado borde blanco dibujado casi centrado en la pantalla.

drawCircle#

Dibuja un círculo en la pantalla IQ (2nd gen) Brain en la posición y el radio especificados.

Available Functions

1 — Dibuja y rellena un círculo con el color de relleno configurado actualmente.

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

2 — Dibuja y rellena un círculo con un objeto predefinido o color personalizado.

void drawCircle(
    int           x,
    int           y,
    int           radius,
    const color&  color );

3 — Dibuja y rellena un círculo con un valor de color hexadecimal.

void drawCircle(
    int           x,
    int           y,
    int           radius,
    const char*   color );

4 — Dibuja y rellena un círculo con un valor de tono.

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

Parameters

Parámetro

Tipo

Descripción

x

int

La coordenada x del centro del círculo, dada como un número entero de 0 a 159.

y

int

La coordenada y del centro del círculo, dada como un número entero de 0 a 107.

radius

int

El radio del círculo, dado como un número entero de 0 a 107 píxeles.

color

const color&

Rellena el círculo usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
También se puede usar un objeto de color personalizado.

color

const char*

Rellena el círculo con un valor de color hexadecimal (por ejemplo, “#FF0000”).

hue

int

Rellena el círculo usando un valor de tono en el rango de 0a359.

Return Values

Esta función no devuelve un valor.

Notes
  • El contorno del círculo se dibuja utilizando el color del bolígrafo actual establecido con setPenColor.

  • El grosor del contorno está determinado por el ancho actual del bolígrafo establecido con setPenWidth.

  • Cuando no se proporciona ningún parámetro de color, el interior del círculo se rellena utilizando el conjunto de colores de relleno actual con setFillColor.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede cambiar utilizando setOrigin.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Draw a green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, green);

Una captura de pantalla de la pantalla IQ Brain con un círculo verde sólido con un delgado borde blanco en el centro de la pantalla.

drawImageFromFile#

Dibuja una imagen en la pantalla IQ (2nd gen) Brain utilizando un archivo de imagen almacenado en la tarjeta SD.

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

Parameters

Parámetro

Tipo

Descripción

name

const char*

El nombre de archivo de la imagen en la tarjeta SD. El archivo debe tener una extensión .bmp o .png.

x

int

La coordenada x, en píxeles de 0 a 159, en la que se dibujará el borde izquierdo de la imagen.

y

int

La coordenada y, en píxeles de 0 a 107, en la que se dibujará el borde superior de la imagen.

Return Values

Devuelve un booleano que indica si la imagen se dibujó correctamente:

  • true — La imagen se cargó y dibujó correctamente en la pantalla.
  • false — La imagen no se pudo dibujar (por ejemplo, si el archivo no existe o no es válido).

Notes
  • Los formatos de imagen admitidos son .bmp y .png.

  • El tamaño del archivo de imagen no debe exceder los 512 KB.

    • Se recomienda la codificación RLE de 8 bits para minimizar el tamaño del archivo.

  • Las dimensiones máximas de imagen admitidas son el tamaño de la pantalla Brain (160 x 108 píxeles).

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede cambiar utilizando setOrigin.

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

render#

Habilita el doble búfer para la pantalla del cerebro. Una vez activada, las funciones de dibujo (como texto, formas o imágenes) ya no aparecerán inmediatamente durante el resto del proyecto. En su lugar, las actualizaciones solo se mostrarán cuando se vuelva a usar la renderización render 1). Esto permite actualizaciones de pantalla más fluidas y controladas, pero implica que no se verá nada hasta que se use la renderización render.

Available Functions

1 — Habilita el búfer doble o representa el búfer posterior en la pantalla.

bool render();

2 — Renderiza el búfer posterior a la pantalla con control sobre el comportamiento de sincronización vertical y la ejecución opcional del programador.

bool render(
    bool bVsyncWait,
    bool bRunScheduler = true );

Parameters

Parámetro

Tipo

Descripción

bVsyncWait

bool

​

  • true — Espere a que la pantalla se actualice verticalmente antes de renderizar para reducir el desgarro visual.
  • false — No espere a que la pantalla se actualice verticalmente antes de renderizar.

bRunScheduler

bool

Opcional.

  • true (predeterminado) — Permitir que las tareas en segundo plano se ejecuten mientras se espera para renderizar.
  • false — No permitir que las tareas en segundo plano se ejecuten mientras se espera para renderizar.

Return Values

Devuelve un booleano que indica si los dibujos guardados en el búfer se representaron correctamente en la pantalla:

  • true — Los dibujos se representaron correctamente en la pantalla.
  • false — Los dibujos no se pudieron representar en la pantalla.
  • Notes
    • Llamar render requerirá que se utilice render para el resto del proyecto.

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