Bildschirm#

Einführung#

Die Klasse screen ist von der Basisklasse brain abgeleitet. Sie steuert, wie das EXP Brain Text, Zahlen und Grafiken auf seinem Bildschirm darstellt.

Der Bildschirm des EXP Brain verfügt über eine festgelegte Anzahl von Zeilen und Spalten, die beim Drucken von Text auf dem Bildschirm verwendet werden.

Standardmäßig wird für den Druck auf dem Brain die Schriftart mono20 verwendet, die 7 Zeilen und 20 Spalten hat.

Für Zeichenaufgaben beträgt die Auflösung des Brain 159 x 107 Pixel.

Ein beschriftetes Rasterdiagramm des VEX Brain-Bildschirms, das Zeilen, Spalten, Pixelabmessungen und Koordinaten zeigt, wobei rote Linien das Raster umreißen.

Zugang#

Auf die Klasse screen kann zugegriffen werden durch:

Brain.Screen

Anmerkungen#

  • Das Objekt screen wird vom Gehirn bereitgestellt. Es wird nicht direkt konstruiert.

  • Projekte verwenden ein einziges globales Brain Objekt, daher werden Bildschirmfunktionen mit Brain.Screen aufgerufen.

Beispiel#

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

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

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

Mitgliedsfunktionen#

Die Klasse screen umfasst die folgenden Memberfunktionen:

  • print — Gibt formatierten Text, Zahlen oder boolesche Werte auf dem Brain-Bildschirm aus.

  • setCursor — Verschiebt den Textcursor in eine angegebene Zeile und Spalte.

  • newLine — Löscht den Rest der aktuellen Zeile und bewegt den Cursor in die nächste Zeile.

  • clearLine — Löscht den Rest der aktuellen Zeile oder löscht eine angegebene Zeile.

  • row — Gibt die Zeile zurück, in der der Text gedruckt werden soll.

  • column — Gibt die Spalte zurück, in der der Text gedruckt werden soll.

  • getStringHeight — Gibt die Höhe einer Zeichenkette in Pixeln unter Verwendung der aktuellen Schriftart zurück.

  • getStringWidth — Gibt die Breite einer Zeichenkette in Pixeln unter Verwendung der aktuellen Schriftart zurück.

  • printAt — Gibt formatierten Text an einer x, y Pixelposition aus (optional deckend).

  • clearScreen — Löscht den gesamten Bildschirm (optional in einer bestimmten Farbe).

  • setFont — Legt die Schriftart fest, die für die Bildschirmausgabe verwendet wird.

  • setPenWidth — Legt die Dicke der gezeichneten Linien und Konturen fest.

  • setPenColor — Legt die Farbe von Text, Pixeln, Linien und Formumrissen fest.

  • setFillColor — Legt die Füllfarbe für gezeichnete Formen und gedruckte Texthintergründe fest.

  • setOrigin — Legt den Ursprung für die Bildschirmkoordinaten fest.

  • setClipRegion — Beschränkt die Bildschirmausgabe auf einen rechteckigen Bereich.

  • drawPixel — Zeichnet ein Pixel an einer Koordinate.

  • drawLine — Zeichnet eine Linie zwischen zwei Punkten.

  • drawRectangle — Zeichnet ein Rechteck an einer x, y Position mit einer festgelegten Größe.

  • drawCircle — Zeichnet einen Kreis an einer x, y Position mit einem angegebenen Radius.

  • drawImageFromFile — Zeichnet ein Bild aus einer SD-Kartendatei auf den Bildschirm.

  • render — Aktiviert die Doppelpufferung oder gibt den Backbuffer auf dem Bildschirm aus.

Bevor screen Memberfunktionen aufgerufen werden, muss eine brain Instanz erstellt werden, wie unten gezeigt:

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

print#

Zeigt Text, Zahlen oder boolesche Werte auf dem EXP Brain-Bildschirm an.

Available Functions

1 — Gibt formatierten Text mithilfe von Zeichenkettenliteralen oder schreibgeschützten C-Zeichenketten aus.

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

2 — Gibt formatierten Text mithilfe veränderbarer Zeichenarrays aus.

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

Parameters

Parameter

Typ

Beschreibung

format

const char*

Eine Formatzeichenkette, die als Zeichenkettenliteral oder als schreibgeschützte Zeichenkette im C-Stil angegeben wird (z. B. “Score: %d”).

format

char*

Eine Formatzeichenkette, die als veränderbares Zeichenarray bereitgestellt wird.

…

Ein oder mehrere zusätzliche Werte, die durch Kommas getrennt in die Formatzeichenfolge eingefügt werden.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Ausgabe beginnt an der Cursorposition auf dem Bildschirm.

  • Der gedruckte Text verwendet die Bildschirmschriftart.

  • Gedruckter Text verwendet die aktuelle Stiftfarbe .

  • Text, der mit print gedruckt wird, wird immer mit einem Hintergrund gedruckt, wobei die Hintergrundfarbe durch die aktuelle Füllfarbe bestimmt wird.

  • Bei Verwendung einer Formatzeichenfolge müssen die Anzahl und die Typen der übergebenen Werte mit den Formatbezeichnern in der Zeichenfolge übereinstimmen.

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

Ein Screenshot des EXP Brain, der in weißer Schrift in der oberen linken Ecke des Bildschirms „Hallo, Roboter!“ anzeigt.

setCursor#

Bewegt den Cursor zu einer bestimmten Zeile und Spalte im EXP Brain-Bildschirm. Der nächste Aufruf print beginnt an dieser Position mit dem Drucken.

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

Parameters

Parameter

Typ

Beschreibung

row

int32_t

Die Zeile, in die der Cursor bewegt werden soll.

col

int32_t

Die Spalte, in die der Cursor bewegt werden soll.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Beeinflusst, wo die nachfolgende Textausgabe beginnt, wenn print verwendet wird.

  • Zeilen und Spalten basieren auf der aktuell eingestellten Bildschirmschriftart.

  • Die Standardschriftart (mono20) verwendet 12 Zeilen und 48 Spalten.

  • Der Aufruf von setCursor beeinflusst nur die Position der nachfolgenden Textausgabe.

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

Ein Screenshot des EXP Brain, der Zeile 3, Spalte 12 im oberen Bereich nahe der Bildschirmmitte an dieser Position anzeigt.

newLine#

Bewegt den Cursor an den Anfang der nächsten Zeile auf dem Gehirn-Bildschirm.

Available Functions
void newLine();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Befindet sich der Cursor mitten in einem Satz, löscht newLine den Rest der Zeile nach dem Cursor, bevor zur nächsten Zeile gewechselt wird.

  • Nach dem Aufruf von newLinewird der Cursor in der ersten Spalte der nächsten Zeile positioniert.

  • Die Cursorposition und die Zeilennummerierung werden mit setCursor festgelegt.

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

Ein Screenshot des EXP Brain-Bildschirms mit zwei Zeilen weißem Text in der oberen linken Ecke. Die obere Zeile lautet „Zeile 1“, die zweite Zeile direkt darunter „Zeile 2“.

clearLine#

Löscht Text aus einer Zeile auf dem EXP Brain-Bildschirm.

Available Functions

1 — Löscht den Rest der aktuellen Zeile ab der Cursorposition.

void clearLine();

2 — Löscht die angegebene Zeile mit der aktuell konfigurierten Füllfarbe.

void clearLine(
    int number );

3 — Löscht die angegebene Zeile mithilfe eines vordefinierten oder benutzerdefinierten Farbobjekts.

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

4 — Löscht die angegebene Zeile mithilfe eines hexadezimalen Farbwerts.

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

5 — Löscht die angegebene Zeile anhand eines Farbtonwerts.

void clearLine(
    int number,
    int hue );

Parameters

Parameter

Typ

Beschreibung

number

int

Die zu löschende Zeilennummer. Die Zeilennummerierung beginnt bei 1.

color

const color&

Löscht die Zeile mit einem color Objekt. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Löscht die Zeile mithilfe eines hexadezimalen Farbwerts (z. B. “#000000”).

hue

int

Löscht die Zeile mit einem ganzzahligen Farbtonwert im Bereich 0–359, der Grad auf einem Farbkreis darstellt.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Das Löschen einer Zeile ändert die aktuelle Cursorposition nicht.

  • Die Cursorposition und die Zeilennummerierung werden mit setCursor festgelegt.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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#

Gibt die Zeile zurück, in der der Text auf dem EXP Brain-Bildschirm ausgegeben wird.

Available Functions
int32_t row();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen int32_t zurück, der die Zeile darstellt, in der der Text ausgegeben wird.

Die Zeilennummerierung beginnt bei 1.

Notes
  • Die Cursorposition basiert auf der Bildschirmschriftart.

  • Der zurückgegebene Wert gibt an, wo die nächste Ausgabe erscheinen wird.

  • Der Zeilenwert ändert sich, wenn Text gedruckt wird oder wenn setCursor aufgerufen wird.

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

Ein Screenshot des EXP Brain-Bildschirms, der den weißen Text 3 im oberen linken Quadranten des Bildschirms an der Position Zeile 3, Spalte 10 zeigt.

column#

Gibt die Spalte zurück, in der der Text auf dem EXP Brain-Bildschirm ausgegeben wird.

Available Functions
int32_t column();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen int32_t zurück, der die Spalte darstellt, in der der Text ausgegeben werden soll.

Die Spaltennummerierung beginnt bei 1.

Notes
  • Die Cursorposition basiert auf der Bildschirmschriftart.

  • Der zurückgegebene Wert gibt an, wo die nächste Ausgabe erscheinen wird.

  • Der Spaltenwert ändert sich, wenn Text gedruckt wird oder wenn setCursor aufgerufen wird.

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

Ein Screenshot des EXP Brain-Bildschirms, der den Text 10 in Weiß im oberen linken Quadranten des Bildschirms, in Zeile 3, Spalte 10, zeigt.

getStringHeight#

Gibt die Höhe eines Strings in Pixeln zurück, wenn dieser auf dem EXP Brain-Bildschirm gerendert wird.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parameter

Typ

Beschreibung

cstr

const char*

Der zu messende Text wird als C-Style-String angegeben (zum Beispiel “Hello”).

Return Values

Gibt einen int32_t zurück, der die Höhe der Zeichenkette in Pixeln bei der Darstellung auf dem Brain-Bildschirm repräsentiert.

Notes
  • Die zurückgegebene Höhe hängt von aktuell ausgewählten Bildschirmschriftart ab.

  • Diese Funktion misst die Zeichenkette, ohne sie auf dem Bildschirm darzustellen.

  • Die zurückgegebene Höhe gibt an, wie die Zeichenkette beim Drucken aussehen würde.

getStringWidth#

Gibt die Breite einer Zeichenkette in Pixeln zurück, wenn sie auf dem EXP Brain-Bildschirm gerendert wird.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parameter

Typ

Beschreibung

cstr

const char*

Der zu messende Text wird als C-Style-String angegeben (zum Beispiel “Hello”).

Return Values

Gibt einen int32_t zurück, der die Breite der Zeichenkette in Pixeln bei der Darstellung auf dem Brain-Bildschirm repräsentiert.

Notes
  • Die zurückgegebene Breite hängt von aktuell ausgewählten Bildschirmschriftart ab.

  • Diese Funktion misst die Zeichenkette, ohne sie auf dem Bildschirm darzustellen.

  • Die zurückgegebene Breite gibt an, wie die Zeichenkette beim Drucken aussehen würde.

printAt#

Gibt Text, Zahlen oder boolesche Werte an einer bestimmten Koordinate auf dem EXP Brain-Bildschirm aus.

Available Functions

1 — Gibt formatierte Ausgabe an der angegebenen Pixelposition aus.

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

2 — Gibt formatierten Text an der angegebenen Pixelposition aus und legt fest, ob der Texthintergrund deckend oder transparent ist.

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

Parameters

Parameter

Typ

Beschreibung

x

int32_t

Die x-Position, an der gedruckt werden soll, bezogen auf den Bildschirmursprung.

y

int32_t

Die y-Position, an der gedruckt werden soll, bezogen auf den Bildschirmursprung.

bOpaque

bool

Steuert, ob der gedruckte Text deckend oder transparent dargestellt wird:

  • true — Der Hintergrund des gedruckten Textes wird mit der aktuellen Füllfarbe gefüllt.
  • false — Der Text wird transparent dargestellt und der Hintergrund ist nicht gefüllt.

format

const char*

Eine Formatzeichenfolge, die steuert, was auf dem Bildschirm ausgegeben wird (zum Beispiel “Score: %d”).

…

Ein oder mehrere zusätzliche Werte, die durch Kommas getrennt in die Formatzeichenfolge eingefügt werden.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

  • Der gedruckte Text verwendet die Bildschirmschriftart.

  • Gedruckter Text verwendet die aktuelle Stiftfarbe .

  • Bei Verwendung einer Formatzeichenfolge müssen die Anzahl und die Typen der übergebenen Werte mit den Formatbezeichnern in der Zeichenfolge übereinstimmen.

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

clearScreen#

Löscht alle Zeichnungen und Texte vom Bildschirm des Gehirns.

Available Functions

1 — Der Bildschirm wird schwarz.

void clearScreen();

2 — Löscht den Bildschirm mithilfe eines vordefinierten oder benutzerdefinierten Farbobjekts.

void clearScreen(
    const color& color );

3 — Löscht den Bildschirm mithilfe eines hexadezimalen Farbwerts.

void clearScreen(
    const char* color );

4 — Löscht den Bildschirm mithilfe eines Farbtonwerts.

void clearScreen(
    int hue );

Parameters

Parameter

Typ

Beschreibung

color

const color&

Löscht den Bildschirm mit einem color Objekt. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Löscht den Bildschirm mit einem hexadezimalen Farbwert, der als Zeichenkette dargestellt wird (z. B. “#000000”).

hue

int

Löscht den Bildschirm mit einem ganzzahligen Farbtonwert im Bereich 0–359, der Grad auf einem Farbkreis darstellt.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

Examples
// Clear screen after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen();


// Clear screen to blue after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen(blue);

setFont#

Legt die Schriftart für den auf dem EXP Brain-Bildschirm angezeigten Text fest.

Dies steuert die Schriftart, die bei der Verwendung von Bildschirmtextfunktionen wie print auf die nachfolgende Textausgabe angewendet wird.

Available Functions
void setFont(
  fontType font );

Parameters

Parameter

Typ

Beschreibung

font

fontType

Legt die Schriftart auf eine der folgenden Optionen fest:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
Diese Optionen werden unten angezeigt.

Der Bildschirm des Gehirns zeigt Zahlen und Buchstaben in der Schriftgröße Mono 12 an. Er zeigt die Buchstaben A bis Z und alle Zahlen. Am unteren Bildschirmrand steht: 9 Zeilen, 26 Spalten.
mono12

Der Bildschirm des Gehirns zeigt Zahlen und Buchstaben in der Schriftgröße Mono 15 an. Er zeigt die Buchstaben A bis T und alle Zahlen. Am unteren Bildschirmrand steht: 7 Zeilen, 22 Spalten.
mono15

Der Bildschirm des Gehirns zeigt Zahlen und Buchstaben in der Schriftgröße Mono 20 an. Er zeigt die Buchstaben A bis P und alle Zahlen an. Am unteren Bildschirmrand steht: 5 Zeilen, 16 Spalten.
mono20

Der Bildschirm des Gehirns zeigt Zahlen und Buchstaben in der Schriftgröße Mono 30 an. Er zeigt die Buchstaben A bis J. Am unteren Bildschirmrand steht R:3 C:10.
mono30

Der Bildschirm des Gehirns zeigte Zahlen und Buchstaben in der Schriftgröße Mono 40 an. Am unteren Bildschirmrand stand R:2 C:8.
mono40

Die auf dem Bildschirm des Gehirns angezeigten Zahlen und Buchstaben sind in der Schriftart Mono 60 dargestellt. Nur Mono 60 wird angezeigt.
mono60

Der Bildschirm des Gehirns zeigt Zahlen und Buchstaben in der Schriftgröße prop20 an. Er zeigt die Buchstaben A bis W und alle Zahlen an. Am unteren Bildschirmrand steht: 5 Zeilen, 16 Spalten.
prop20

Der Bildschirm des Gehirns zeigt Zahlen und Buchstaben in der Schriftgröße prop30 an. Er zeigt die Buchstaben A bis P. Am unteren Bildschirmrand steht R:3 C:10.
prop30

Der Bildschirm des Gehirns zeigte Zahlen und Buchstaben in der Schriftgröße prop 40 an. Am unteren Bildschirmrand stand R:2 C:8.
prop40

Die Zahlen und Buchstaben des Gehirns werden im Schriftbild Prop 60 angezeigt. Nur Prop 60 wird dargestellt.
prop60

Return Values

Diese Funktion gibt keinen Wert zurück.

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

Ein Screenshot des EXP Brain-Bildschirms, der in der oberen linken Ecke weißen Text mit der Aufschrift „VEX“ in größerer Schriftart als der Standardschrift zeigt.

setPenWidth#

Legt die Strichstärke und Konturstärke von gezeichneten Linien fest.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parameter

Typ

Beschreibung

width

uint32_t

Die Stiftbreite in Pixeln als Bereich von 0 bis 32.

Return Values

Diese Funktion gibt keinen Wert zurück.

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

Ein Screenshot des EXP Brain-Bildschirms, der ein Rechteck mit dicken Rändern auf der linken Seite des Bildschirms zeigt.

setPenColor#

Legt die Stiftfarbe fest, die zum Zeichnen von Linien, Formen und Text verwendet wird.

Available Functions

1 — Legt die Stiftfarbe mithilfe eines vordefinierten oder benutzerdefinierten Farbobjekts fest.

void setPenColor(
    const color& color );

2 — Legt die Stiftfarbe mithilfe eines hexadezimalen Farbwerts fest.

void setPenColor(
    const char* color );

3 — Legt die Stiftfarbe mithilfe eines Farbtonwerts fest.

void setPenColor(
    int hue );

Parameters

Parameter

Typ

Beschreibung

color

const color&

Legt die Stiftfarbe mithilfe eines color Objekts fest. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Legt die Stiftfarbe mithilfe eines hexadezimalen Farbwerts fest, der als Zeichenkette dargestellt wird (zum Beispiel “#FF0000”).

hue

int

Die Stiftfarbe wird mithilfe eines ganzzahligen Farbtonwerts im Bereich 0–359eingestellt, der Gradzahlen auf einem Farbkreis darstellt (zum Beispiel ist 0 rot, 120 grün und 240 blau).

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Standardstiftfarbe zu Beginn eines Projekts ist white.

  • Die Stiftfarbe wird für Umrisse von Formen (z. B. mit drawCircle oder drawRectangle), Text- und numerische Ausgaben (mit print und printAt) sowie für einzelne Pixel verwendet, die mit drawPixel gezeichnet werden.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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

Ein Screenshot des EXP Brain-Bildschirms, der ein orangefarbenes Rechteck auf der linken Seite des Bildschirms zeigt.

setFillColor#

Legt die Füllfarbe fest, die beim Zeichnen von Formen verwendet wird.

Available Functions

1 — Legt die Füllfarbe mithilfe eines vordefinierten oder benutzerdefinierten Farbobjekts fest.

void setFillColor(
    const color& color );

2 — Legt die Füllfarbe mithilfe eines hexadezimalen Farbwerts fest.

void setFillColor(
    const char* color );

3 — Legt die Füllfarbe mithilfe eines Farbtonwerts fest.

void setFillColor(
    int hue );

Parameters

Parameter

Typ

Beschreibung

color

const color&

Legt die Füllfarbe mithilfe eines color Objekts fest. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Legt die Füllfarbe mithilfe eines hexadezimalen Farbwerts fest, der als Zeichenkette dargestellt wird (z. B. “#00FF00”).

hue

int

Legt die Füllfarbe mithilfe eines ganzzahligen Farbtonwerts im Bereich 0–359fest, der Grad auf einem Farbkreis darstellt (zum Beispiel ist 0 rot, 120 grün und 240 blau).

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Standardfüllfarbe zu Beginn eines Projekts ist black.

  • Die Füllfarbe wird für das Innere von Formen verwendet (z. B. mit drawCircle oder drawRectangle).

  • Die Füllfarbe wird als Hintergrundfarbe für gedruckten Text verwendet (z. B. bei print und printAt).

    • Bei Verwendung von transparent mit gedrucktem Text wird der Hintergrund black sein.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

Examples
// Draw a rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(20, 20, 75, 50);

Ein Screenshot des EXP Brain-Bildschirms, der ein violett gefülltes Rechteck auf der linken Seite des Bildschirms zeigt.

setOrigin#

Legt den Ursprung fest, der für die Darstellung von Grafiken auf dem Bildschirm des Gehirns verwendet wird.

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

Parameters

Parameter

Typ

Beschreibung

x

int32_t

Die x-Position des Ursprungs relativ zur oberen linken Ecke des Bildschirms des Gehirns von 0 bis 159.

y

int32_t

Die y-Position des Ursprungs relativ zur oberen linken Ecke des Bildschirms des Gehirns von 0 bis 107.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Der Standardursprung ist die obere linke Ecke des Bildschirms an der Koordinate (0, 0).

  • Der Ursprung gilt für Koordinatenfunktionen wie drawLine, drawRectangle, drawCircle und printAt.

  • Der Ursprung bleibt so lange aktiv, bis er erneut geändert oder das Projekt zurückgesetzt wird.

setClipRegion#

Definiert einen rechteckigen Bereich auf dem Bildschirm, in dem alle Zeichnungen und Texte angezeigt werden. Inhalte außerhalb dieses Bereichs werden nicht angezeigt.

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

Parameters

Parameter

Typ

Beschreibung

x

int

Die x-Koordinate der oberen linken Ecke des Clip-Bereichs, angegeben als ganze Zahl von 0 bis 159.

y

int

Die y-Koordinate der oberen linken Ecke des Clip-Bereichs, angegeben als ganze Zahl von 0 bis 107.

width

int

Die Breite des Clipping-Bereichs in Pixeln, angegeben als ganze Zahl von 0 bis 159.

height

int

Die Höhe des Clipping-Bereichs in Pixeln, angegeben als ganze Zahl von 0 bis 107.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Zeichenfunktionen werden auch dann ausgeführt, wenn sie außerhalb des Clipping-Bereichs liegen, aber nur der Teil innerhalb des Bereichs ist sichtbar.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

  • Der Clip-Bereich gilt nur für den aktuellen Thread.

  • Das Festlegen eines neuen Clipbereichs ersetzt jeden zuvor festgelegten Clipbereich für den aktuellen Thread.

Examples

drawPixel#

Zeichnet einen Pixel auf dem EXP Brain-Bildschirm an der ausgewählten x- und y-Pixelposition.

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

Parameters

Parameter

Typ

Beschreibung

x

int

Die x-Koordinate, an der das Pixel gezeichnet werden soll, angegeben als ganze Zahl von 0 bis 159.

y

int

Die y-Koordinate, an der das Pixel gezeichnet werden soll, angegeben als ganze Zahl von 0 bis 107.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Pixel werden mit der aktuellen Stiftfarbe gezeichnet, die mit setPenColor festgelegt wird.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin festgelegt werden kann.

  • Wenn sich die angegebene Pixelposition außerhalb der Bildschirmgrenzen befindet, wird das Pixel nicht gezeichnet.

Examples
// Draw the pixels marking the corners of a square
Brain.Screen.drawPixel(50, 50);
Brain.Screen.drawPixel(50, 75);
Brain.Screen.drawPixel(75, 50);
Brain.Screen.drawPixel(75, 75);

Ein Screenshot des EXP Brain-Bildschirms, der eine Ansammlung von Pixeln zeigt, die die Ecken eines Quadrats nahe der Bildschirmmitte darstellen.

drawLine#

Zeichnet eine gerade Linie, die zwei Punkte auf dem EXP Brain-Bildschirm verbindet.

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

Parameters

Parameter

Typ

Beschreibung

x1

int

Die Start-x-Koordinate der Geraden, angegeben als ganze Zahl von 0 bis 159.

y1

int

Die Start-y-Koordinate der Geraden, angegeben als ganze Zahl von 0 bis 107.

x2

int

Die End-x-Koordinate der Geraden, angegeben als ganze Zahl von 0 bis 159.

y2

int

Die y-Endkoordinate der Geraden, angegeben als ganze Zahl von 0 bis 107.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Linien werden mit der aktuell mit setPenColor festgelegten Stiftfarbe gezeichnet.

  • Die Linienbreite wird durch die aktuelle Stiftbreite bestimmt, die mit setPenWidth eingestellt wird.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin festgelegt werden kann.

  • Wenn ein Teil der Linie außerhalb des Bildschirmbereichs liegt, wird nur der sichtbare Teil gezeichnet.

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

Ein Screenshot des EXP Brain-Bildschirms zeigt eine dünne diagonale Linie quer durch die Mitte, von der oberen linken Ecke zur unteren rechten Ecke.

drawRectangle#

Zeichnet ein Rechteck auf dem EXP Brain-Bildschirm an der angegebenen Position und Größe.

Available Functions

1 — Zeichnet und füllt ein Rechteck mit der aktuell konfigurierten Füllfarbe.

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

2 — Zeichnet und füllt ein Rechteck mit einem vordefinierten oder benutzerdefinierten Farbe Objekt.

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

3 — Zeichnet und füllt ein Rechteck unter Verwendung eines hexadezimalen Farbwertes.

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

4 — Zeichnet und füllt ein Rechteck unter Verwendung eines Farbtonwertes.

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

Parameters

Parameter

Typ

Beschreibung

x

int

Die x-Koordinate der oberen linken Ecke des Rechtecks, angegeben als ganze Zahl von 0 bis 159.

y

int

Die y-Koordinate der oberen linken Ecke des Rechtecks, angegeben als ganze Zahl von 0 bis 107.

width

int

Die Breite des Rechtecks, angegeben als ganze Zahl von 0 bis 159.

height

int

Die Höhe des Rechtecks, angegeben als ganze Zahl von 0 bis 107.

color

const color&

Füllt das Rechteck mit einem color Objekt. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Füllt das Rechteck mit einem hexadezimalen Farbwert (z. B. “#FF0000”).

hue

int

Füllt das Rechteck mit einem Farbtonwert im Bereich 0–359.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Rechteckkontur wird mit der aktuellen Stiftfarbe gezeichnet, die mit setPenColor festgelegt ist.

  • Die Konturstärke wird durch die aktuelle Stiftbreite bestimmt, die mit setPenWidth festgelegt wird.

  • Wird kein color Parameter angegeben, wird das Innere des Rechtecks ​​mit der aktuell mit setFillColor festgelegten Füllfarbe gefüllt.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

  • Wenn ein Teil des Rechtecks ​​außerhalb der Bildschirmgrenzen liegt, wird nur der sichtbare Teil gezeichnet.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

Examples
// Draw a rectangle on the screen
Brain.Screen.drawRectangle(20, 20, 80, 30);

Ein Screenshot des EXP Brain-Bildschirms zeigt ein Rechteck mit einem dünnen weißen Rand im oberen linken Quadranten.

drawCircle#

Zeichnet einen Kreis auf dem EXP Brain-Bildschirm an der angegebenen Position und mit dem angegebenen Radius.

Available Functions

1 — Zeichnet und füllt einen Kreis mit der aktuell konfigurierten Füllfarbe.

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

2 — Zeichnet und füllt einen Kreis mit einem vordefinierten oder benutzerdefinierten Farbe Objekt.

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

3 — Zeichnet und füllt einen Kreis unter Verwendung eines hexadezimalen Farbwertes.

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

4 — Zeichnet und füllt einen Kreis unter Verwendung eines Farbtonwertes.

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

Parameters

Parameter

Typ

Beschreibung

x

int

Die x-Koordinate des Mittelpunkts des Kreises, angegeben als ganze Zahl von 0 bis 159.

y

int

Die y-Koordinate des Mittelpunkts des Kreises, angegeben als ganze Zahl von 0 bis 107.

radius

int

Der Radius des Kreises, angegeben als ganze Zahl von 0 bis 107 Pixeln.

color

const color&

Füllt den Kreis mit einem color Objekt. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Füllt den Kreis mit einem hexadezimalen Farbwert (z. B. “#FF0000”).

hue

int

Füllt den Kreis mit einem Farbtonwert im Bereich 0–359.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Kreiskontur wird mit der aktuell mit setPenColor festgelegten Stiftfarbe gezeichnet.

  • Die Konturstärke wird durch die aktuelle Stiftbreite bestimmt, die mit setPenWidth festgelegt wird.

  • Wird kein color Parameter angegeben, wird das Innere des Kreises mit der aktuell mit setFillColor festgelegten Füllfarbe gefüllt.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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

Ein Screenshot des EXP Brain-Bildschirms zeigt einen Kreis mit einem dünnen weißen Rand in der Mitte.

drawImageFromFile#

Zeichnet ein Bild auf dem EXP Brain-Bildschirm mithilfe einer auf der SD-Karte gespeicherten Bilddatei.

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

Parameters

Parameter

Typ

Beschreibung

name

const char*

The filename of the image on the SD card. The file must have a .bmp or .png extension.

x

int

Die x-Koordinate in Pixeln von 0 bis 159, an der der linke Rand des Bildes gezeichnet wird.

y

int

Die y-Koordinate in Pixeln von 0 bis 107, an der die obere Kante des Bildes gezeichnet wird.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob das Bild erfolgreich gerendert wurde:

  • true — Das Bild wurde erfolgreich geladen und auf dem Bildschirm dargestellt.
  • false — Das Bild konnte nicht gerendert werden (z. B. wenn die Datei nicht existiert oder ungültig ist).

Notes
  • Unterstützte Bildformate sind .bmp und .png.

  • Die Bilddateigröße darf 512 KB nicht überschreiten.

    • Zur Minimierung der Dateigröße wird die 8-Bit-RLE-Codierung empfohlen.

  • Die maximal unterstützten Bildabmessungen entsprechen der Größe des Brain-Bildschirms (ungefähr 159 x 107 Pixel).

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

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

render#

Aktiviert die doppelte Pufferung für den Bildschirm des Brains. Nach dem Aufruf werden Zeichenfunktionen (wie Text, Formen oder Bilder) nicht mehr sofort für den Rest des Projekts angezeigt. Aktualisierungen werden erst sichtbar, wenn render erneut verwendet wird. Dies ermöglicht flüssigere und kontrolliertere Bildschirmaktualisierungen, bedeutet aber, dass erst nach der Verwendung von render etwas sichtbar ist.

Available Functions

1 — Aktiviert die Doppelpufferung oder gibt den Backbuffer auf dem Bildschirm aus.

bool render();

2 — Rendert den Backbuffer auf dem Bildschirm mit Kontrolle über das Verhalten der vertikalen Synchronisierung und optionaler Scheduler-Ausführung.

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

Parameters

Parameter

Typ

Beschreibung

bVsyncWait

bool

​

  • true — Warten Sie auf die vertikale Aktualisierung des Bildschirms vor dem Rendern, um Bildrisse zu reduzieren.
  • false — Warten Sie nicht auf die vertikale Aktualisierung des Bildschirms vor dem Rendern.

bRunScheduler

bool

Optional.

  • true (Standard) – Hintergrundprozesse dürfen während des Wartens auf das Rendern ausgeführt werden.
  • false – Hintergrundprozesse dürfen während des Wartens auf das Rendern nicht ausgeführt werden.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob die gespeicherten Zeichnungen im Puffer erfolgreich auf dem Bildschirm dargestellt wurden:

  • true — Die Zeichnungen wurden erfolgreich auf dem Bildschirm dargestellt.
  • false — Die Zeichnungen konnten nicht auf dem Bildschirm dargestellt werden.
  • Notes
    • Der Aufruf von render erfordert die Verwendung render für den Rest des Projekts.

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