Scherm#

Invoering#

De klasse screen is afgeleid van de basisklasse brain. Deze klasse bepaalt hoe de IQ (2e generatie) Brain tekst, cijfers en afbeeldingen op het ingebouwde scherm weergeeft.

Standaard is het lettertype voor afdrukken naar de Brain monospaced small.

Voor tekenen heeft de Brain een resolutie van 160 x 108 pixels.

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 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 (optioneel ondoorzichtig).

  • clearScreen — Maakt het hele scherm leeg (eventueel naar een opgegeven kleur).

  • 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 Brain
brain Brain = brain();

print#

Geeft tekst, getallen of Booleaanse waarden weer op het IQ (2e generatie) 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 IQ (2e generatie) 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 IQ (2e generatie) Brain-scherm. De volgende print oproep begint op die locatie 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 5 rijen en 16 kolommen.

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

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

Een screenshot van de IQ (2e generatie) Brain waarop 25 linksboven in het scherm is afgedrukt, op die positie.

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 IQ (2e generatie) 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 IQ (2e generatie) 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 rij terug waar de tekst op het IQ (2e generatie) 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("row: ", Brain.Screen.row());

Een screenshot van het IQ (2e generatie) Brain-scherm waarop de tekstregel 3 in het wit aan de linkerkant van het scherm te zien is, op positie 12 van rij 3.

column#

Geeft de kolom terug waar de tekst op het IQ (2e generatie) 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.print("column: ", Brain.Screen.column());

Een screenshot van het IQ (2e generatie) Brain-scherm waarop kolom 9 in het wit bovenaan het scherm te zien is, op rij 1, kolom 9.

getStringHeight#

Geeft de hoogte in pixels weer van een tekenreeks wanneer deze wordt weergegeven op het IQ (2e generatie) 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 IQ (2e generatie) 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#

Geeft tekst, getallen of Booleaanse waarden weer op een specifieke coördinaat op het IQ (2e generatie) 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 the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, 1);

Een screenshot van het IQ (2e generatie) Brain-scherm met witte tekst die 1 weergeeft, afgedrukt op (100, 40).

clearScreen#

Verwijdert alle tekeningen en tekst van het scherm van de hersenen.

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

Een screenshot van het IQ (2e generatie) Brain-scherm met het hele afdrukbare gebied felrood.

setFont#

Hiermee wordt het lettertype ingesteld dat wordt gebruikt voor de tekst die wordt weergegeven op het IQ (2e generatie) Brain-scherm.

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

Sets the font to one of the following:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
These options are shown below.

Een screenshot van het VEX IQ Brain-scherm met een reeks cijfers en letters in het lettertype Mono 12. De letters AZ staan ​​op één regel en beslaan de volledige breedte van het scherm. De linkerbenedenhoek geeft 26 tekens in de breedte en 9 rijen aan.
mono12

Dezelfde schermafbeelding als de vorige, nu met het lettertype Mono 15. De letters AT staan ​​op één regel en beslaan de volledige breedte van het scherm. De linkerbenedenhoek geeft 20 tekens per regel en 7 rijen aan.
mono15

Dezelfde schermafbeelding als de vorige, nu met het lettertype Mono 20. De letters AP staan ​​op één regel en beslaan de volledige breedte van het scherm. De linkerbenedenhoek geeft 16 tekens per regel en 5 rijen aan.
mono20

Dezelfde schermafbeelding als de vorige, nu met het lettertype Mono 30. De cijfers 1 tot en met 9 en een extra 0 staan ​​op één regel, over de volledige breedte van het scherm. De linkerbenedenhoek geeft 3 rijen aan.
mono30

Dezelfde schermafbeelding als de vorige, nu met het lettertype Mono 40. De cijfers 1 tot en met 8 staan ​​op de tweede regel en beslaan de volledige breedte van het scherm.
mono40

Dezelfde schermafbeelding als de vorige, nu met het lettertype Mono 60. Op het scherm wordt MN 60 in een groot lettertype weergegeven, dat bijna de hele bovenste helft van het scherm in beslag neemt.
mono60

Dezelfde schermafbeelding als de vorige, nu met het Prop 20-lettertype. De letters AW staan ​​op één regel en beslaan de volledige breedte van het scherm. De linkerbenedenhoek geeft 26 tekens per regel en 5 rijen aan.
prop20

Dezelfde schermafbeelding als de vorige, nu met het Prop 30-lettertype. De cijfers 1-9 worden twee keer herhaald op één regel en beslaan de volledige breedte van het scherm. De linkerbenedenhoek geeft 18 tekens per regel en 3 rijen aan.
prop30

Dezelfde schermafbeelding als de vorige, nu met het Prop 40-lettertype. Op de bovenste regel staat Prop 40 en op de tweede regel staat 14 tekens en 2 regels.
prop40

Dezelfde schermafbeelding als de vorige, nu met het Prop 60-lettertype. Op het scherm staat PROP 60 in een groot lettertype, dat bijna de hele bovenste helft van het scherm in beslag neemt.
prop60

Return Values

Deze functie retourneert geen waarde.

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

Een screenshot van het IQ Brain-scherm met witte tekst op twee regels in de linkerbovenhoek. De eerste regel luidt Mono Medium en de tweede regel direct daaronder luidt Prop Medium in een kleiner lettertype.

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 circle with a pen width of 5
Brain.Screen.drawCircle(40, 70, 20);
Brain.Screen.setPenWidth(5);
Brain.Screen.drawCircle(100, 70, 20);

Een screenshot van het IQ Brain-scherm met twee witte cirkels in de onderste helft van het scherm. De cirkel aan de linkerkant heeft een smallere rand dan de cirkel aan de rechterkant.

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

Een screenshot van het IQ Brain-scherm met twee kleine rechthoekjes getekend op de onderste helft van het scherm. De rechthoek aan de linkerkant is blauw en die aan de rechterkant is wit.

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 circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);

Een screenshot van het IQ Brain-scherm met een felgele cirkel met een dunne witte rand getekend op de linkerhelft 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 159.

y

int32_t

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

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

y

int

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

width

int

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

height

int

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

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 IQ (2e generatie) Brain met witte tekst "Cut of" en een massief rood vierkant direct daaronder in de linkerbovenhoek, dat weergeeft wat er in het knipgebied is afgedrukt.

drawPixel#

Tekent één pixel op het IQ (2e generatie) 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 159.

y

int

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

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 one pixel at the center 
// of the screen
Brain.Screen.drawPixel(80, 50);

Een screenshot van het IQ Brain-scherm met een klein wit stipje in het midden van het scherm.

drawLine#

Tekent een rechte lijn tussen twee punten op de IQ-hersenscreening (2e generatie).

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

y1

int

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

x2

int

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

y2

int

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

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, 159, 107);

Een screenshot van het IQ Brain-scherm met een witte diagonale lijn getekend van de linkerbovenhoek naar de rechteronderhoek.

drawRectangle#

Tekent een rechthoek op het IQ (2e generatie) Brain-scherm op de opgegeven positie en grootte.

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

y

int

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

width

int

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

height

int

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

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 red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, red);

Een screenshot van het IQ Brain-scherm met een grote rode rechthoek met een dunne witte rand, bijna in het midden van het scherm getekend.

drawCircle#

Tekent een cirkel op het IQ (2e generatie) Brain-scherm op de opgegeven positie en 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 159.

y

int

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

radius

int

De straal van de cirkel, gegeven als een geheel getal van 0 tot 107 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 color parameter 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 green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, green);

Een screenshot van het IQ Brain-scherm met een effen groene cirkel met een dunne witte rand in het midden van het scherm.

drawImageFromFile#

Tekent een afbeelding op het IQ (2e generatie) 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 of .png.

x

int

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

y

int

De y-coördinaat, in pixels van 0 tot 107, 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 een afbeelding zijn gelijk aan de grootte van het Brain-scherm (160 x 108 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();