Scherm#

Invoering#

De klasse screen is afgeleid van de basisklasse brain. Deze klasse bepaalt hoe de V5 Brain tekst, cijfers en afbeeldingen op het touchscreen weergeeft en hoe deze reageert op aanraakinvoer.

Standaard is het lettertype voor afdrukken naar de Brain monospaced small, met 12 rijen en 48 kolommen.

Voor tekenen heeft de Brain een resolutie van 480 x 240 pixels.

Het V5 Brain-scherm met rode rasterlijnen die de lay-out van 12 rijen en 48 kolommen in totaal weergeven. De pixelafmetingen zijn 479 breed bij 239 hoog. De linkerbovenhoek begint bij (0,0) pixels en rij 1, kolom 1, terwijl de rechteronderhoek eindigt bij (479, 239) pixels en rij 12, kolom 48.

Toegang#

De klasse screen is toegankelijk via:

Brain.Screen

Notities#

  • Het object screen wordt door de hersenen aangeleverd. Het wordt niet direct geconstrueerd.

  • Projecten gebruiken één globaal Brain object, dus schermfuncties worden aangeroepen met behulp van Brain.Screen.

Voorbeeld#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

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

// Print text to the Brain screen
Brain.Screen.print("Hello!");

Lidfuncties#

De klasse screen bevat de volgende lidfuncties:

  • print — Drukt opgemaakte tekst, getallen of Booleaanse waarden af ​​op het Brain-scherm.

  • setCursor — Verplaatst de tekstcursor naar een opgegeven rij en kolom.

  • newLine — Maakt de rest van de huidige regel leeg en verplaatst de cursor naar de volgende regel.

  • clearLine — Maakt de rest van de huidige regel leeg of maakt een opgegeven regel leeg.

  • row — Geeft de rij terug waar de tekst zal worden afgedrukt.

  • column — Geeft de kolom terug waar de tekst wordt afgedrukt.

  • getStringHeight — Retourneert de hoogte van een tekenreeks in pixels met behulp van het huidige lettertype.

  • getStringWidth — Retourneert de breedte van een tekenreeks in pixels met behulp van het huidige lettertype.

  • printAt — Drukt opgemaakte tekst af op een x, y pixelpositie.

  • clearScreen — Verwijdert alle tekeningen en tekst van het Brain-scherm.

  • setFont — Stelt het lettertype in dat wordt gebruikt voor afdrukken op het scherm.

  • setPenWidth — Stelt de dikte in van getekende lijnen en vormcontouren.

  • setPenColor — Stelt de kleur in van tekst, pixels, lijnen en vormcontouren.

  • setFillColor — Stelt de vulkleur in voor getekende vormen en achtergronden van afgedrukte tekst.

  • setOrigin — Stelt de oorsprong in die gebruikt wordt voor schermcoördinaten.

  • setClipRegion — Beperkt de schermuitvoer tot een rechthoekig gebied.

  • drawPixel — Tekent één pixel op een coördinaat.

  • drawLine — Tekent een lijn tussen twee punten.

  • drawRectangle — Tekent een rechthoek op een x, y-locatie met een opgegeven grootte.

  • drawCircle — Tekent een cirkel op een x, y-locatie met een opgegeven straal.

  • drawImageFromFile — Tekent een afbeelding van een SD-kaartbestand op het scherm.

  • render — Schakelt dubbele buffering in of geeft de backbuffer weer op het scherm.

  • pressing — Geeft aan of het scherm momenteel wordt ingedrukt.

  • xPosition — Geeft de x-coördinaat van de meest recente schermdruk terug.

  • yPosition — Geeft de y-coördinaat van de meest recente schermdruk terug.

  • pressed — Registreert een callbackfunctie die wordt uitgevoerd wanneer het scherm wordt ingedrukt.

  • released — Registreert een callbackfunctie die wordt uitgevoerd wanneer het scherm wordt losgelaten nadat erop is gedrukt.

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

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

print#

Geeft tekst, getallen of Booleaanse waarden weer op het V5 Brain-scherm.

Available Functions

1 — Drukt opgemaakte tekst af met behulp van tekenreeksliteralen of alleen-lezen C-stijl tekenreeksen.

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

2 — Drukt opgemaakte tekst af met behulp van aanpasbare tekenreeksen.

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

Parameters

Parameter

Type

Beschrijving

format

const char*

Een opmaakstring die wordt aangeleverd als een letterlijke tekenreeks of als een alleen-lezen C-stijl tekenreeks (bijvoorbeeld “Score: %d”).

format

char*

Een opmaakstring die wordt aangeleverd als een aanpasbare tekenreeks.

…

Een of meer extra waarden die in de opmaakreeks worden ingevoegd, gescheiden door komma’s.

Return Values

Deze functie retourneert geen waarde.

Notes
  • De uitvoer begint bij de huidige cursorpositie (positie op het scherm.

  • De afgedrukte tekst gebruikt het huidige schermlettertype .

  • Gedrukte tekst gebruikt de huidige penkleur .

  • Tekst die met print wordt afgedrukt, wordt altijd met een achtergrond afgedrukt, en de achtergrondkleur wordt bepaald door de vulkleur.

  • Bij gebruik van een opmaakstring moeten het aantal en de typen van de doorgegeven waarden overeenkomen met de opmaakspecificaties in de string.

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

Een screenshot van de V5 Brain waarop "Hallo, Robot!" in witte tekst linksboven op het scherm te zien is.

setCursor#

Verplaatst de cursor naar een specifieke rij en kolom op het V5 Brain-scherm. De volgende print aanroep zal op die locatie beginnen met afdrukken.

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

Parameters

Parameter

Type

Beschrijving

row

int32_t

De rij waarnaar de cursor moet worden verplaatst.

col

int32_t

De kolom waarnaar de cursor moet worden verplaatst.

Return Values

Deze functie retourneert geen waarde.

Notes
  • Dit heeft invloed op waar de daaropvolgende tekstuitvoer begint bij gebruik van print.

  • Rijen en kolommen zijn gebaseerd op het momenteel ingestelde schermlettertype.

  • Het standaardlettertype (mono20) gebruikt 12 rijen en 48 kolommen.

  • Het aanroepen van setCursor heeft alleen invloed op de positie van de daaropvolgende tekstuitvoer.

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

Een screenshot van de V5 Brain waarop rij 3, kolom 12 in het bovenste gedeelte, nabij het midden van het scherm, op die positie is afgedrukt.

newLine#

Verplaatst de cursor naar het begin van de volgende rij op het Brain-scherm.

Available Functions
void newLine();

Parameters

Deze functie accepteert geen parameters.

Return Values

Deze functie retourneert geen waarde.

Notes
  • Als de cursor zich midden in een zin bevindt, zal newLine de rest van de regel na de cursor wissen voordat naar de volgende regel wordt overgeschakeld.

  • Na het aanroepen van newLinewordt de cursor op de eerste kolom van de volgende regel geplaatst.

  • De cursorpositie en rijnummering worden ingesteld met behulp van setCursor.

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

Een screenshot van het V5 Brain-scherm met twee regels witte tekst in de linkerbovenhoek. De bovenste regel luidt 'Regel 1' en de tweede regel direct daaronder luidt 'Regel 2'.

clearLine#

Verwijdert tekst uit een rij op het V5 Brain-scherm.

Available Functions

1 — Verwijdert de rest van de huidige regel vanaf de cursorpositie.

void clearLine();

2 — Maakt de opgegeven rij leeg met de momenteel geconfigureerde vulkleur.

void clearLine(
    int number );

3 — Maakt de opgegeven rij leeg met behulp van een vooraf gedefinieerd of aangepast kleur object.

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

4 — Maakt de opgegeven rij leeg met behulp van een hexadecimale kleurwaarde.

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

5 — Maakt de opgegeven rij leeg met behulp van een kleurwaarde.

void clearLine(
    int number,
    int hue );

Parameters

Parameter

Type

Beschrijving

number

int

Het rijnummer dat moet worden gewist. De rijnummering begint bij 1.

color

const color&

Maakt de rij leeg met behulp van een object met kleur color Voorgedefinieerde kleuren zijn onder andere:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Dit kan ook een aangepast kleurobject gebruiken.

color

const char*

Maakt de rij leeg met behulp van een hexadecimale kleurwaarde (bijvoorbeeld “#000000”).

hue

int

Maakt de rij leeg met behulp van een integer tintwaarde in het bereik 0–359, wat graden op een kleurencirkel vertegenwoordigt.

Return Values

Deze functie retourneert geen waarde.

Notes
  • Het wissen van een regel verandert de huidige cursorpositie niet.

  • De cursorpositie en rijnummering worden ingesteld met behulp van setCursor.

  • De parameterwaarde hue is gebaseerd op een cirkelvormig kleurenwiel, zoals hieronder weergegeven, waarbij de waarden graden rond het wiel vertegenwoordigen (bijvoorbeeld rood in de buurt van 0°, groen in de buurt van 120° en blauw in de buurt van 240°).

Een kleurencirkel die het kleurenbereik van 0 tot 359 weergeeft, waarbij rood 0 is, groen 120 en blauw 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#

Geeft de regel terug waar de tekst op het V5 Brain-scherm wordt afgedrukt.

Available Functions
int32_t row();

Parameters

Deze functie accepteert geen parameters.

Return Values

Retourneert een int32_t die de regel vertegenwoordigt waar de tekst moet worden afgedrukt.

De rijnummering begint bij 1.

Notes
  • De cursorpositie is gebaseerd op het huidige schermlettertype .

  • De geretourneerde waarde geeft aan waar de volgende afgedrukte uitvoer zal verschijnen.

  • De rijwaarde verandert wanneer tekst wordt afgedrukt of wanneer setCursor wordt aangeroepen.

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

Een screenshot van het V5 Brain-scherm waarop de tekst 3 in het wit te zien is in de linkerbovenhoek van het scherm, op rij 3, kolom 12.

column#

Geeft de kolom terug waarin de tekst op het V5 Brain-scherm wordt afgedrukt.

Available Functions
int32_t column();

Parameters

Deze functie accepteert geen parameters.

Return Values

Retourneert een int32_t die de kolom vertegenwoordigt waar de tekst moet worden afgedrukt.

De kolomnummering begint bij 1.

Notes
  • De cursorpositie is gebaseerd op het huidige schermlettertype .

  • De geretourneerde waarde geeft aan waar de volgende afgedrukte uitvoer zal verschijnen.

  • De kolomwaarde verandert wanneer tekst wordt afgedrukt of wanneer setCursor wordt aangeroepen.

Examples
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

Een screenshot van het V5 Brain-scherm waarop de tekst 15 in het wit te zien is in de linkerbovenhoek van het scherm, op rij 3, kolom 15.

getStringHeight#

Geeft de hoogte in pixels weer van een tekenreeks wanneer deze wordt weergegeven op het V5 Brain-scherm.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parameter

Type

Beschrijving

cstr

const char*

De te meten tekst, aangeleverd als een C-stijl tekenreeks (bijvoorbeeld “Hello”).

Return Values

Retourneert een int32_t die de hoogte van de tekenreeks in pixels weergeeft wanneer deze op het Brain-scherm wordt weergegeven.

Notes
  • De geretourneerde hoogte is afhankelijk van momenteel geselecteerde schermlettertype.

  • Deze functie meet de tekenreeks zonder deze op het scherm weer te geven.

  • De geretourneerde hoogte geeft weer hoe de tekenreeks eruit zou zien wanneer deze wordt afgedrukt.

getStringWidth#

Geeft de breedte in pixels weer van een tekenreeks wanneer deze wordt weergegeven op het V5 Brain-scherm.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parameter

Type

Beschrijving

cstr

const char*

De te meten tekst, aangeleverd als een C-stijl tekenreeks (bijvoorbeeld “Hello”).

Return Values

Retourneert een int32_t die de breedte van de tekenreeks in pixels weergeeft wanneer deze op het Brain-scherm wordt weergegeven.

Notes
  • De geretourneerde breedte is afhankelijk van momenteel geselecteerde schermlettertype.

  • Deze functie meet de tekenreeks zonder deze op het scherm weer te geven.

  • De geretourneerde breedte geeft aan hoe de tekenreeks eruit zou zien wanneer deze wordt afgedrukt.

printAt#

Hiermee worden tekst, getallen of Booleaanse waarden afgedrukt op een specifieke coördinaat op het V5 Brain-scherm.

Available Functions

1 — Drukt de geformatteerde uitvoer af op de opgegeven pixelpositie.

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

2 — Drukt opgemaakte uitvoer af op de opgegeven pixelpositie en stelt in of de tekstachtergrond ondoorzichtig of transparant is.

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

Parameters

Parameter

Type

Beschrijving

x

int32_t

De x-positie waarop afgedrukt moet worden, ten opzichte van de oorsprong van het scherm.

y

int32_t

De y-positie waarop afgedrukt moet worden, ten opzichte van de schermoorsprong.

bOpaque

bool

Hiermee wordt bepaald of de afgedrukte tekst dekkend of transparant wordt weergegeven:

  • true — De achtergrond van de afgedrukte tekst wordt gevuld met de huidige vulkleur.
  • false — De tekst wordt transparant weergegeven en de achtergrond wordt niet gevuld.

format

const char*

Een opmaakstring die bepaalt wat er op het scherm wordt afgedrukt (bijvoorbeeld “Score: %d”).

…

Een of meer extra waarden die in de opmaakreeks worden ingevoegd, gescheiden door komma’s.

Return Values

Deze functie retourneert geen waarde.

Notes
  • De coördinaten x en y zijn relatief ten opzichte van de huidige schermoorsprong, die kan worden gewijzigd met behulp van setOrigin.

  • De afgedrukte tekst gebruikt het huidige schermlettertype .

  • Gedrukte tekst gebruikt de huidige penkleur .

  • Bij gebruik van een opmaakstring moeten het aantal en de typen van de doorgegeven waarden overeenkomen met de opmaakspecificaties in de string.

Examples
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

Een screenshot van het V5 Brain-scherm met witte tekst waarop 'Center' staat, gecentreerd op het scherm.

clearScreen#

Verwijdert alle tekeningen en tekst van het Brain-scherm en zet de cursorpositie terug naar rij 1, kolom 1.

Available Functions

1 — Maakt het scherm zwart.

void clearScreen();

2 — Maakt het scherm leeg met behulp van een vooraf gedefinieerd of aangepast kleur object.

void clearScreen(
    const color& color );

3 — Maakt het scherm leeg met behulp van een hexadecimale kleurwaarde.

void clearScreen(
    const char* color );

4 — Maakt het scherm schoon met behulp van een kleurwaarde.

void clearScreen(
    int hue );

Parameters

Parameter

Type

Beschrijving

color

const color&

Maakt het scherm leeg met behulp van een object met kleur color Voorgedefinieerde kleuren zijn onder andere:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Dit kan ook een aangepast kleurobject gebruiken.

color

const char*

Maakt het scherm leeg met behulp van een hexadecimale kleurwaarde die als tekenreeks wordt weergegeven (bijvoorbeeld “#000000”).

hue

int

Maakt het scherm leeg met behulp van een integer tintwaarde in het bereik 0–359, wat graden op een kleurencirkel vertegenwoordigt.

Return Values

Deze functie retourneert geen waarde.

Notes
  • De parameterwaarde hue is gebaseerd op een cirkelvormig kleurenwiel, zoals hieronder weergegeven, waarbij de waarden graden rond het wiel vertegenwoordigen (bijvoorbeeld rood in de buurt van 0°, groen in de buurt van 120° en blauw in de buurt van 240°).

Een kleurencirkel die het kleurenbereik van 0 tot 359 weergeeft, waarbij rood 0 is, groen 120 en blauw 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);

Een screenshot van het V5 Brain-scherm met het gehele afdrukbare gebied felblauw.

setFont#

Hiermee wordt het lettertype ingesteld dat wordt gebruikt voor de tekst die op het V5 Brain-scherm wordt weergegeven.

Dit bepaalt het lettertype dat wordt toegepast op de daaropvolgende tekstuitvoer bij gebruik van schermtekstfuncties zoals print.

Available Functions
void setFont(
  fontType font );

Parameters

Parameter

Type

Beschrijving

font

fontType

Stelt het lettertype in op een van de volgende:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Kan Chinese, Japanse en Koreaanse tekens afdrukken.
    • Vereenvoudigd Chinees — Te zien tot en met kolom 28.
    • Traditioneel Chinees — Te zien tot en met kolom 28.
    • Japans (Kanji) — Te zien tot en met kolom 28.
    • Koreaans (Hangul) — Te zien tot en met kolom 30.
Deze opties worden hieronder weergegeven.

Een screenshot van het V5 Brain-scherm met cijfers en letters in wit in de linkerbovenhoek in het lettertype MONO 12. Het toont AZ op één regel, over ongeveer een kwart van de schermbreedte. In de linkerbenedenhoek staat 80 kolommen en 20 rijen.
mono12

Dezelfde afbeelding als de vorige, met het lettertype Mono 15. Het toont AZ op één regel, over bijna de helft van de schermbreedte. In de linkerbenedenhoek staat 68 kolommen en 16 rijen.
mono15

Dezelfde afbeelding als de vorige, met het lettertype Mono 20. Het toont AZ op één regel, over bijna twee derde van de breedte van het scherm. In de linkerbenedenhoek staat 48 kolommen en 12 rijen.
mono20

Dezelfde afbeelding als de vorige, met het lettertype Mono 30. Het toont AZ op één regel, over bijna de hele breedte van het scherm. In de linkerbenedenhoek staat 32 kolommen en 8 rijen.
mono30

Dezelfde afbeelding als de vorige, met het lettertype Mono 40. Het toont AX op één regel, over de volledige breedte van het scherm. In de linkerbenedenhoek staat 24 kolommen en 6 rijen.
mono40

Dezelfde afbeelding als de vorige, met het lettertype Mono 60. Het toont AP op één regel, over de volledige breedte van het scherm. Onderaan staat aangegeven dat er 16 kolommen en 4 rijen zijn.
mono60

Dezelfde afbeelding als de vorige, met het Prop 20-lettertype. Het toont AZ op één regel, over bijna twee derde van de breedte van het scherm. In de linkerbenedenhoek staat 48 kolommen en 12 rijen.
prop20

Dezelfde afbeelding als de vorige, met het Prop 30-lettertype. Het toont AZ op één regel, die bijna de volledige breedte van het scherm beslaat. In de linkerbenedenhoek staat 32 kolommen en 8 rijen.
prop30

Dezelfde afbeelding als de vorige, met het Prop 40-lettertype. Het toont AU op één regel, over de volledige breedte van het scherm. In de linkerbenedenhoek staat 24 kolommen en 6 rijen.
prop40

Dezelfde afbeelding als de vorige, met het Prop 60-lettertype. Het toont AN op één regel, over de volledige breedte van het scherm. Onderaan staat 15 kolommen en 4 rijen.
prop60

Dezelfde afbeelding als de vorige, met lettertype CJK 16. Het toont AZ op één regel, die ongeveer twee derde van het scherm beslaat. De volgende regels tonen VEXcode in vereenvoudigd Chinees, traditioneel Chinees, Koreaans en Japans. Onderaan staat 43 kolommen en 12 rijen.
fontType::cjk16

Return Values

Deze functie retourneert geen waarde.

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

Een screenshot van het V5 Brain-scherm met witte tekst die VEX in een groter lettertype dan standaard weergeeft, in de linkerbovenhoek.


// Print in Chinese
Brain.Screen.setFont(fontType::cjk16);
Brain.Screen.print("VEX机器人");

Een screenshot van het V5 Brain-scherm met de tekst "VEX机器人" in Chinese letters in de linkerbovenhoek.

setPenWidth#

Hiermee stelt u de dikte van getekende lijnen en vormcontouren in.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parameter

Type

Beschrijving

width

uint32_t

De penbreedte, in pixels, van 0 tot 32.

Return Values

Deze functie retourneert geen waarde.

Notes Examples
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Een screenshot van het V5 Brain-scherm waarop een rechthoek met dikke randen in de linkerbovenhoek van het scherm te zien is.

setPenColor#

Hiermee kunt u de kleur van tekst, pixels, lijnen en vormcontouren instellen.

Available Functions

1 — Stelt de penkleur in met behulp van een vooraf gedefinieerd of aangepast kleur object.

void setPenColor(
    const color& color );

2 — Stelt de penkleur in met behulp van een hexadecimale kleurwaarde.

void setPenColor(
    const char* color );

3 — Stelt de penkleur in met behulp van een tintwaarde.

void setPenColor(
    int hue );

Parameters

Parameter

Type

Beschrijving

color

const color&

Stelt de penkleur in met behulp van een object met kleur color Voorgedefinieerde kleuren zijn onder andere:

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

color

const char*

Hiermee wordt de penkleur ingesteld met behulp van een hexadecimale kleurwaarde die als tekenreeks wordt weergegeven (bijvoorbeeld “#FF0000”).

hue

int

Hiermee wordt de penkleur ingesteld met een integer tintwaarde in het bereik 0–359, die graden op een kleurencirkel vertegenwoordigt (bijvoorbeeld 0 is rood, 120 is groen en 240 is blauw).

Return Values

Deze functie retourneert geen waarde.

Notes
  • De standaard penkleur aan het begin van een project is white.

  • De penkleur wordt gebruikt voor de contouren van vormen (zoals met drawCircle of drawRectangle), tekst en numerieke uitvoer (met print en printAt), en individuele pixels getekend met drawPixel.

  • De parameterwaarde hue is gebaseerd op een cirkelvormig kleurenwiel, zoals hieronder weergegeven, waarbij de waarden graden rond het wiel vertegenwoordigen (bijvoorbeeld rood in de buurt van 0°, groen in de buurt van 120° en blauw in de buurt van 240°).

Een kleurencirkel die het kleurenbereik van 0 tot 359 weergeeft, waarbij rood 0 is, groen 120 en blauw 240.

Examples
// Draw a rectangle with orange borders
Brain.Screen.setPenColor(orange);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Een screenshot van het V5 Brain-scherm met een rechthoek in oranje in de linkerbovenhoek van het scherm.

setFillColor#

Hiermee wordt de opvulkleur ingesteld die wordt gebruikt bij het tekenen van vormen.

Available Functions

1 — Stelt de vulkleur in met behulp van een vooraf gedefinieerd of aangepast kleur object.

void setFillColor(
    const color& color );

2 — Stelt de vulkleur in met behulp van een hexadecimale kleurwaarde.

void setFillColor(
    const char* color );

3 — Stelt de vulkleur in met behulp van een tintwaarde.

void setFillColor(
    int hue );

Parameters

Parameter

Type

Beschrijving

color

const color&

Stelt de vulkleur in met behulp van een object met kleurcode color Voorgedefinieerde kleuren zijn onder andere:

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

color

const char*

Hiermee wordt de vulkleur ingesteld met behulp van een hexadecimale kleurwaarde die als tekenreeks wordt weergegeven (bijvoorbeeld “#00FF00”).

hue

int

Hiermee wordt de vulkleur ingesteld met een integer tintwaarde in het bereik 0–359, die graden op een kleurencirkel vertegenwoordigt (bijvoorbeeld 0 is rood, 120 is groen en 240 is blauw).

Return Values

Deze functie retourneert geen waarde.

Notes
  • De standaard vulkleur aan het begin van een project is black.

  • De vulkleur wordt gebruikt voor de binnenkant van vormen (zoals bij drawCircle of drawRectangle).

  • De vulkleur wordt gebruikt als achtergrondkleur voor afgedrukte tekst (zoals bij print en printAt).

    • Als transparent wordt gebruikt met gedrukte tekst, zal de achtergrond black zijn.

  • De parameterwaarde hue is gebaseerd op een cirkelvormig kleurenwiel, zoals hieronder weergegeven, waarbij de waarden graden rond het wiel vertegenwoordigen (bijvoorbeeld rood in de buurt van 0°, groen in de buurt van 120° en blauw in de buurt van 240°).

Een kleurencirkel die het kleurenbereik van 0 tot 359 weergeeft, waarbij rood 0 is, groen 120 en blauw 240.

Examples
// Draw a rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(50, 100, 130, 60);

Een screenshot van het V5 Brain-scherm met een rechthoek gevuld met paars in het linkeronderkwadrant van het scherm.

setOrigin#

Hiermee wordt het nulpunt ingesteld dat wordt gebruikt voor tekenen en coördinatengebaseerd printen op het Brain-scherm.

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

Parameters

Parameter

Type

Beschrijving

x

int32_t

De x-positie van de oorsprong ten opzichte van de linkerbovenhoek van het Brain-scherm, van 0 tot 479.

y

int32_t

De y-positie van de oorsprong ten opzichte van de linkerbovenhoek van het Brain-scherm, van 0 tot 239.

Return Values

Deze functie retourneert geen waarde.

Notes
  • De standaard oorsprong is de linkerbovenhoek van het scherm op coördinaat (0, 0).

  • De oorsprong is van toepassing op coördinaatfuncties zoals drawLine, drawRectangle, drawCircle, en printAt.

  • De oorsprong blijft van kracht totdat deze opnieuw wordt gewijzigd of het project wordt gereset.

setClipRegion#

Hiermee wordt een rechthoekig gebied op het scherm gedefinieerd waarbinnen alle tekeningen en tekst worden weergegeven. Inhoud buiten dit gebied wordt niet getoond.

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

Parameters

Parameter

Type

Beschrijving

x

int

De x-coördinaat van de linkerbovenhoek van het knipgebied, weergegeven als een geheel getal van 0 tot 479.

y

int

De y-coördinaat van de linkerbovenhoek van het knipgebied, weergegeven als een geheel getal van 0 tot 239.

width

int

De breedte van het knipgebied in pixels, weergegeven als een geheel getal van 0 tot 479.

height

int

De hoogte van het knipgebied in pixels, weergegeven als een geheel getal van 0 tot 239.

Return Values

Deze functie retourneert geen waarde.

Notes
  • Tekenfuncties worden nog steeds uitgevoerd, zelfs als ze buiten het knipgebied vallen, maar alleen het gedeelte binnen het gebied is zichtbaar.

  • De coördinaten x en y zijn relatief ten opzichte van de huidige schermoorsprong, die kan worden gewijzigd met behulp van setOrigin.

  • Het knipgebied is alleen van toepassing op de huidige thread.

  • Door een nieuw knipgebied in te stellen, wordt elk eerder ingesteld knipgebied voor de huidige thread vervangen.

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

Een screenshot van het scherm van de V5 Brain met witte tekst "Cut of" en een massief rood vierkant direct daaronder in de linkerbovenhoek, dat weergeeft wat er in het knipgebied wordt weergegeven.

drawPixel#

Tekent één pixel op het V5 Brain-scherm op de geselecteerde x- en y-pixelpositie.

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

Parameters

Parameter

Type

Beschrijving

x

int

De x-coördinaat waar de pixel getekend zal worden, gegeven als een geheel getal van 0 tot 479.

y

int

De y-coördinaat waar de pixel getekend zal worden, gegeven als een geheel getal van 0 tot 239.

Return Values

Deze functie retourneert geen waarde.

Notes
  • Pixels worden getekend met behulp van de huidige penkleur die is ingesteld met setPenColor.

  • De coördinaten x en y zijn relatief ten opzichte van de huidige schermoorsprong, die kan worden ingesteld met behulp van setOrigin.

  • Als de opgegeven pixelpositie buiten de schermgrenzen ligt, wordt de pixel niet getekend.

Examples
// Draw the pixels marking the corners of a square
Brain.Screen.drawPixel(250, 100);
Brain.Screen.drawPixel(275, 100);
Brain.Screen.drawPixel(250, 125);
Brain.Screen.drawPixel(275, 125);

Een screenshot van het V5 Brain-scherm met een verzameling pixels die de hoeken van een vierkant in het midden van het scherm weergeven.

drawLine#

Tekent een rechte lijn die twee punten op het V5 Brain-scherm verbindt.

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

Parameters

Parameter

Type

Beschrijving

x1

int

De startcoördinaat van de lijn (x-coördinaat), gegeven als een geheel getal van 0 tot 479.

y1

int

De begincoördinaat van de lijn op de y-as, gegeven als een geheel getal van 0 tot 239.

x2

int

De eindcoördinaat van de lijn (x-coördinaat), gegeven als een geheel getal van 0 tot 479.

y2

int

De eind-y-coördinaat van de lijn, gegeven als een geheel getal van 0 tot 239.

Return Values

Deze functie retourneert geen waarde.

Notes
  • Lijnen worden getekend met de huidige penkleur die is ingesteld met setPenColor.

  • De breedte van de lijn wordt bepaald door de huidige penbreedte die is ingesteld met setPenWidth.

  • De coördinaten x en y zijn relatief ten opzichte van de huidige schermoorsprong, die kan worden ingesteld met behulp van setOrigin.

  • Als een gedeelte van de lijn buiten de schermgrenzen valt, wordt alleen het zichtbare gedeelte getekend.

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

Een screenshot van het V5 Brain-scherm toont een dunne diagonale lijn dwars door het midden, van de linkerbovenhoek naar de rechteronderhoek.

drawRectangle#

Tekent een rechthoek op het V5 Brain-scherm op de opgegeven positie en met de opgegeven afmetingen.

Available Functions

1 — Tekent en vult een rechthoek met de momenteel geconfigureerde vulkleur.

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

2 — Tekent en vult een rechthoek met behulp van een vooraf gedefinieerd of aangepast kleur object.

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

3 — Tekent en vult een rechthoek met een hexadecimale kleurwaarde.

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

4 — Tekent en vult een rechthoek met behulp van een kleurwaarde.

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

Parameters

Parameter

Type

Beschrijving

x

int

De x-coördinaat van de linkerbovenhoek van de rechthoek, gegeven als een geheel getal van 0 tot 479.

y

int

De y-coördinaat van de linkerbovenhoek van de rechthoek, gegeven als een geheel getal van 0 tot 239.

width

int

De breedte van de rechthoek, gegeven als een geheel getal van 0 tot 479.

height

int

De hoogte van de rechthoek, gegeven als een geheel getal van 0 tot 239.

color

const color&

Vult de rechthoek met een object met kleur color Voorgedefinieerde kleuren zijn onder andere:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Dit kan ook een aangepast kleurobject gebruiken.

color

const char*

Vult de rechthoek met een hexadecimale kleurwaarde (bijvoorbeeld “#FF0000”).

hue

int

Vult de rechthoek met een tintwaarde in het bereik 0–359.

Return Values

Deze functie retourneert geen waarde.

Notes
  • De omtrek van de rechthoek wordt getekend met de huidige penkleur die is ingesteld met setPenColor.

  • De dikte van de omtreklijn wordt bepaald door de huidige penbreedte die is ingesteld met setPenWidth.

  • Als er geen color parameter wordt opgegeven, wordt het binnenste van de rechthoek gevuld met de huidige vulkleur die is ingesteld met setFillColor.

  • De coördinaten x en y zijn relatief ten opzichte van de huidige schermoorsprong, die kan worden gewijzigd met behulp van setOrigin.

  • Als een deel van de rechthoek buiten de schermgrenzen valt, wordt alleen het zichtbare deel getekend.

  • De parameterwaarde hue is gebaseerd op een cirkelvormig kleurenwiel, zoals hieronder weergegeven, waarbij de waarden graden rond het wiel vertegenwoordigen (bijvoorbeeld rood in de buurt van 0°, groen in de buurt van 120° en blauw in de buurt van 240°).

Een kleurencirkel die het kleurenbereik van 0 tot 359 weergeeft, waarbij rood 0 is, groen 120 en blauw 240.

Examples
// Draw a rectangle on the screen
Brain.Screen.drawRectangle(50, 50, 130, 60);

Een screenshot van het scherm van de V5 Brain toont een rechthoek met een dunne witte rand in de linkerbovenhoek.

drawCircle#

Tekent een cirkel op het V5 Brain-scherm op de opgegeven positie en met de opgegeven straal.

Available Functions

1 — Tekent en vult een cirkel met de momenteel geconfigureerde vulkleur.

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

2 — Tekent en vult een cirkel met behulp van een vooraf gedefinieerd of aangepast kleur object.

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

3 — Tekent en vult een cirkel met behulp van een hexadecimale kleurwaarde.

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

4 — Tekent en vult een cirkel met behulp van een kleurwaarde.

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

Parameters

Parameter

Type

Beschrijving

x

int

De x-coördinaat van het middelpunt van de cirkel, gegeven als een geheel getal van 0 tot 479.

y

int

De y-coördinaat van het middelpunt van de cirkel, gegeven als een geheel getal van 0 tot 239.

radius

int

De straal van de cirkel, gegeven als een geheel getal van 0 tot 239 pixels.

color

const color&

Vult de cirkel met een object met kleur color Voorgedefinieerde kleuren zijn onder andere:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Dit kan ook een aangepast kleurobject gebruiken.

color

const char*

Vult de cirkel met een hexadecimale kleurwaarde (bijvoorbeeld “#FF0000”).

hue

int

Vult de cirkel met een tintwaarde in het bereik 0–359.

Return Values

Deze functie retourneert geen waarde.

Notes
  • De omtrek van de cirkel wordt getekend met de huidige penkleur die is ingesteld met setPenColor.

  • De dikte van de omtreklijn wordt bepaald door de huidige penbreedte die is ingesteld met setPenWidth.

  • Als er geen parameter color wordt opgegeven, wordt de binnenkant van de cirkel gevuld met de huidige vulkleur die is ingesteld met setFillColor.

  • De coördinaten x en y zijn relatief ten opzichte van de huidige schermoorsprong, die kan worden gewijzigd met behulp van setOrigin.

  • De parameterwaarde hue is gebaseerd op een cirkelvormig kleurenwiel, zoals hieronder weergegeven, waarbij de waarden graden rond het wiel vertegenwoordigen (bijvoorbeeld rood in de buurt van 0°, groen in de buurt van 120° en blauw in de buurt van 240°).

Een kleurencirkel die het kleurenbereik van 0 tot 359 weergeeft, waarbij rood 0 is, groen 120 en blauw 240.

Examples
// Draw a circle on the screen
Brain.Screen.drawCircle(240, 120, 40);

Een screenshot van het V5 Brain-scherm toont een cirkel met een dunne witte rand in het midden.

drawImageFromFile#

Tekent een afbeelding op het V5 Brain-scherm met behulp van een afbeeldingsbestand dat is opgeslagen op de SD-kaart.

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

Parameters

Parameter

Type

Beschrijving

name

const char*

De bestandsnaam van de afbeelding op de SD-kaart. Het bestand moet de extensie .bmp hebben .bmp ) of .bmp ( .png.

x

int

De x-coördinaat, in pixels van 0 tot 479, waar de linkerrand van de afbeelding wordt getekend.

y

int

De y-coördinaat, in pixels van 0 tot 239, waarop de bovenrand van de afbeelding wordt getekend.

Return Values

Retourneert een Booleaanse waarde die aangeeft of de afbeelding succesvol is getekend:

  • true — De afbeelding is succesvol geladen en op het scherm getekend.
  • false — De afbeelding kon niet worden getekend (bijvoorbeeld als het bestand niet bestaat of ongeldig is).

Notes
  • Ondersteunde afbeeldingsformaten zijn .bmp en .png.

  • The image file size must not exceed 512 KB.

    • Om de bestandsgrootte te minimaliseren, wordt 8-bits RLE-codering aanbevolen.

  • De maximaal ondersteunde afmetingen van afbeeldingen zijn gelijk aan de grootte van het Brain-scherm (ongeveer 479 x 239 pixels).

  • De coördinaten x en y zijn relatief ten opzichte van de huidige schermoorsprong, die kan worden gewijzigd met behulp van setOrigin.

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

render#

Schakelt dubbele buffering in voor het scherm van de Brain. Zodra deze functie is aangeroepen, zullen tekenfuncties (zoals tekst, vormen of afbeeldingen) niet langer direct verschijnen gedurende de rest van het project. In plaats daarvan worden updates pas weergegeven wanneer render opnieuw wordt gebruikt. Dit zorgt voor vloeiendere en meer gecontroleerde schermupdates, maar betekent wel dat er niets zichtbaar zal zijn totdat render wordt gebruikt.

Available Functions

1 — Schakelt dubbele buffering in of geeft de backbuffer weer op het scherm.

bool render();

2 — Geeft de backbuffer weer op het scherm, met controle over het verticale synchronisatiegedrag en optionele uitvoering van de scheduler.

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

Parameters

Parameter

Type

Beschrijving

bVsyncWait

bool

​

  • true — Wacht op de verticale verversing van het scherm voordat u gaat renderen om visuele tearing te verminderen.
  • false — Wacht niet op de verticale verversing van het scherm voordat u gaat renderen.

bRunScheduler

bool

Optioneel.

  • true (standaard) — Sta toe dat achtergrondtaken worden uitgevoerd terwijl er wordt gewacht op het renderen.
  • false — Sta niet toe dat achtergrondtaken worden uitgevoerd terwijl er wordt gewacht op het renderen.

Return Values

Retourneert een Booleaanse waarde die aangeeft of de opgeslagen tekeningen in de buffer succesvol op het scherm zijn weergegeven:

  • true — De tekeningen zijn succesvol op het scherm weergegeven.
  • false — De tekeningen konden niet op het scherm worden weergegeven.
  • Notes
    • Als je render aanroept, moet je render gebruiken voor de rest van het project.

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

pressing#

Geeft aan of het V5 Brain-scherm momenteel wordt ingedrukt.

Available Functions
bool pressing();

Parameters

Deze functie accepteert geen parameters.

Return Values

Retourneert een Booleaanse waarde die de huidige ingedrukte status van het scherm aangeeft:true — Het scherm wordt momenteel ingedrukt. of false — Het scherm wordt niet ingedrukt.

Examples
// Change the screen's color after it's pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.setFillColor(green);
Brain.Screen.drawRectangle(0, 0, 479, 239);


// Display different messages after the screen is pressed
while (!Brain.Screen.pressing()) {
  wait(5, msec);
}
Brain.Screen.print("First message!");
Brain.Screen.newLine();

// Lift finger to press the screen again
while (Brain.Screen.pressing()) {
  wait(5, msec);
}
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}
Brain.Screen.print("Second message!");
Brain.Screen.newLine();

xPosition#

Geeft de x-coördinaat terug van de laatste druk op het V5 Brain-scherm.

Available Functions
int32_t xPosition();

Parameters

Deze functie accepteert geen parameters.

Return Values

Retourneert een int32_t die de x-coördinaat, in pixels van 0 tot 479, van de laatst aangeraakte schermtoets vertegenwoordigt.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

yPosition#

Geeft de y-coördinaat terug van de laatste aanraking op het V5 Brain-scherm.

Available Functions
int32_t yPosition();

Parameters

Deze functie accepteert geen parameters.

Return Values

Retourneert een int32_t die de y-coördinaat, in pixels van 0 tot 239, van de laatst aangeraakte schermtoets vertegenwoordigt.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

pressed#

Registreert een functie die moet worden aangeroepen wanneer op het V5 Brain-scherm wordt gedrukt.

Available Functions

1 — Roept een functie aan wanneer het scherm wordt ingedrukt.

void pressed(
    void (*callback)(void)
);

2 — Roept een functie aan wanneer het scherm wordt ingedrukt en geeft een door de gebruiker gedefinieerd argument door aan de callbackfunctie.

void pressed(
    void (*callback)(void*),
    void* arg );

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt aangeroepen wanneer er op het scherm wordt gedrukt.

callback

void ()(void)

Een functie die wordt aangeroepen wanneer op het scherm wordt gedrukt en een door de gebruiker gedefinieerd argument ontvangt.

arg

void*

Een door de gebruiker gedefinieerde waarde die wordt doorgegeven aan de callbackfunctie wanneer op het scherm wordt gedrukt.

Return Values

Deze functie retourneert geen waarde.

Notes
  • De callbackfunctie wordt uitgevoerd telkens wanneer er op het Brain-scherm wordt gedrukt.

  • Er kan slechts één callbackfunctie tegelijk worden geregistreerd; het opnieuw aanroepen van pressed vervangt de vorige callback.

  • De callbackfunctie moet void retourneren.

Examples

Definieer de callbackfunctie (buiten int main())

// Tracks how many times the screen is pressed.
void onScreenPressed(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Pressed %d times", *count);
}

Registreer de callback binnen int main()

int main() {
  int pressCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.pressed(onScreenPressed, &pressCount);

  while (true) {
    wait(20, msec);
  }
}

released#

Registreert een functie die moet worden aangeroepen wanneer het V5 Brain-scherm wordt losgelaten nadat erop is gedrukt.

Available Functions

1 — Roept een functie aan wanneer het scherm wordt losgelaten nadat erop is gedrukt.

void released(
    void (*callback)(void)
);

2 — Roept een functie aan wanneer het scherm wordt losgelaten nadat erop is gedrukt en geeft een door de gebruiker gedefinieerd argument door aan de callbackfunctie.

void released(
    void (*callback)(void*),
    void* arg );

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt aangeroepen wanneer het scherm wordt losgelaten nadat erop is gedrukt.

callback

void ()(void)

Een functie die wordt aangeroepen wanneer het scherm wordt losgelaten na te zijn ingedrukt en die een door de gebruiker gedefinieerd argument ontvangt.

arg

void*

Een door de gebruiker gedefinieerde waarde die wordt doorgegeven aan de callbackfunctie wanneer het scherm wordt losgelaten na te zijn ingedrukt.

Return Values

Deze functie retourneert geen waarde.

Notes
  • De callback-functie wordt elke keer uitgevoerd wanneer het Brain-scherm wordt losgelaten nadat erop is gedrukt.

  • Er kan slechts één callbackfunctie tegelijk worden geregistreerd; het aanroepen van released opnieuw wordt vrijgegeven, vervangt de vorige callback.

  • De callbackfunctie moet void retourneren.

Examples

Definieer de callbackfunctie (buiten int main())

// Tracks how many times the screen is released.
void onScreenReleased(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Released %d times", *count);
}

Registreer de callback binnen int main()

int main() {
  int releaseCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.released(onScreenReleased, &releaseCount);

  while (true) {
    wait(20, msec);
  }
}