Bildschirm#

Einführung#

Die Klasse screen ist von der Basisklasse „brain“ abgeleitet. Sie steuert, wie das IQ-Gehirn (2. Generation) Text, Zahlen und Grafiken auf seinem integrierten Bildschirm darstellt.

Standardmäßig wird für den Druck auf dem Brain die Schriftart monospaced small verwendet.

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

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

  • pressing — Gibt zurück, ob der Bildschirm gerade gedrückt wird.

  • xPosition — Gibt die x-Koordinate des letzten Bildschirm-Touches zurück.

  • yPosition — Gibt die y-Koordinate des letzten Bildschirm-Touches zurück.

  • pressed — Registriert eine Rückruffunktion, die beim Drücken des Bildschirms ausgeführt wird.

  • released — Registriert eine Callback-Funktion, die ausgeführt wird, wenn der Bildschirm nach dem Drücken losgelassen wird.

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

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

print#

Zeigt Text, Zahlen oder boolesche Werte auf dem IQ (2. Generation) 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 IQ Brain (2. Generation), auf dem in weißer Schrift in der oberen linken Ecke des Bildschirms „Hallo, Roboter!“ angezeigt wird.

setCursor#

Bewegt den Cursor auf eine bestimmte Zeile und Spalte im IQ (2. Generation) 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 5 Zeilen und 16 Spalten.

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

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

Ein Screenshot des IQ Brain (2. Generation), auf dem oben links auf dem Bildschirm an dieser Position die Zahl 25 angezeigt wird.

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 IQ-Gehirn-Bildschirms (2. Generation) 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 IQ (2. Generation) 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 IQ (2. Generation) Brain-Bildschirm ausgegeben werden soll.

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, 12);
Brain.Screen.print("row: ", Brain.Screen.row());

Ein Screenshot des IQ (2. Generation) Gehirnbildschirms, der den Text Zeile 3 in Weiß auf der linken Seite des Bildschirms an Position Zeile 3, Spalte 12 zeigt.

column#

Gibt die Spalte zurück, in der der Text auf dem IQ (2. Generation) 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.print("column: ", Brain.Screen.column());

Ein Screenshot des IQ-Gehirntests (2. Generation), der die Spalte 9 in Weiß oben auf dem Bildschirm, in Zeile 1, Spalte 9, zeigt.

getStringHeight#

Gibt die Höhe eines Strings in Pixeln zurück, wenn dieser auf dem IQ (2. Generation) 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 IQ (2. Generation) 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 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 IQ (2. Generation) 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);

Screenshot des IQ-Gehirnbildschirms (2. Generation) mit weißem Text, der 1 anzeigt, gedruckt an Position (100, 40).

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

Ein Screenshot des IQ (2. Generation) Brain-Bildschirms, bei dem der gesamte druckbare Bereich leuchtend rot ist.

setFont#

Legt die Schriftart fest, die für den auf dem IQ (2. Generation) Brain-Bildschirm angezeigten Text verwendet wird.

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.

Screenshot des VEX IQ Brain-Bildschirms mit einer Reihe von Zahlen und Buchstaben in der Schriftart Mono 12. Die Buchstaben AZ befinden sich in einer Zeile, die sich über die gesamte Bildschirmbreite erstreckt. Die untere linke Ecke zeigt 26 Zeichen in der Breite und 9 Zeilen an.
mono12

Derselbe Screenshot wie der vorherige, jetzt mit der Schriftart Mono 15. Die Buchstaben AT befinden sich in einer Zeile und erstrecken sich über die gesamte Bildschirmbreite. Die untere linke Ecke zeigt 20 Zeichen in der Breite und 7 Zeilen an.
mono15

Derselbe Screenshot wie der vorherige, jetzt mit der Schriftart Mono 20. Die Buchstaben AP befinden sich in einer Zeile und erstrecken sich über die gesamte Bildschirmbreite. Die untere linke Ecke zeigt 16 Zeichen in der Breite und 5 Zeilen an.
mono20

Derselbe Screenshot wie der vorherige, jetzt mit der Schriftart Mono 30. Die Zahlen 1 bis 9 und eine zusätzliche 0 befinden sich in einer Zeile, die sich über die gesamte Bildschirmbreite erstreckt. Die untere linke Ecke markiert 3 Zeilen.
mono30

Derselbe Screenshot wie der vorherige, jetzt mit der Schriftart Mono 40. Die Zahlen 1 bis 8 befinden sich in der zweiten Zeile und erstrecken sich über die gesamte Bildschirmbreite.
mono40

Derselbe Screenshot wie der vorherige, jetzt mit der Schriftart Mono 60. Der Bildschirm zeigt MN 60 in großer Schrift, die fast die gesamte obere Hälfte des Bildschirms einnimmt.
mono60

Derselbe Screenshot wie der vorherige, jetzt mit der Schriftart Prop 20. Die Buchstaben AW befinden sich in einer Zeile und erstrecken sich über die gesamte Bildschirmbreite. Die untere linke Ecke zeigt 26 Zeichen in der Breite und 5 Zeilen an.
prop20

Derselbe Screenshot wie der vorherige, jetzt mit der Schriftart Prop 30. Die Zahlen 1–9 werden zweimal in einer Zeile wiederholt und erstrecken sich über die gesamte Bildschirmbreite. Die untere linke Ecke zeigt 18 Zeichen in der Breite und 3 Zeilen an.
prop30

Derselbe Screenshot wie der vorherige, jetzt mit Prop-40-Schriftart. In der obersten Zeile steht „Prop 40“, in der zweiten werden 14 Zeichen und 2 Zeilen angezeigt.
prop40

Derselbe Screenshot wie der vorherige, jetzt mit Prop 60-Schriftart. Auf dem Bildschirm steht „PROP 60“ in großer Schrift, die fast die gesamte obere Hälfte des Bildschirms einnimmt.
prop60

Return Values

Diese Funktion gibt keinen Wert zurück.

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

Ein Screenshot des IQ Brain-Bildschirms mit weißem Text in zwei Zeilen in der oberen linken Ecke. Die erste Zeile lautet „Mono Medium“, die zweite Zeile direkt darunter in kleinerer Schrift „Prop Medium“.

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, von 0 bis 32.

Return Values

Diese Funktion gibt keinen Wert zurück.

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

Ein Screenshot des IQ Brain-Bildschirms mit zwei weißen Kreisen in der unteren Bildschirmhälfte. Der linke Kreis hat einen schmaleren Rand als der rechte.

setPenColor#

Legt die Farbe von Text, Pixeln, Linien und Formkonturen fest.

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:

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

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

Ein Screenshot des IQ Brain-Bildschirms mit zwei kleinen Rechtecken in der unteren Bildschirmhälfte. Das linke Rechteck ist blau, das rechte weiß.

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:

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

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

Ein Screenshot des IQ Brain-Bildschirms mit einem hellgelben Kreis mit dünnem weißen Rand auf der linken Bildschirmhälfte.

setOrigin#

Legt den Ursprung fest, der für das Zeichnen und koordinatenbasierte Drucken auf dem Brain-Bildschirm 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 Gehirn-Bildschirms von 0 bis 159.

y

int32_t

Die y-Position des Ursprungs relativ zur oberen linken Ecke des Gehirn-Bildschirms 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
// 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!");

Ein Screenshot des Bildschirms des IQ (2. Generation) Brain mit weißem Text, der "Cut of" anzeigt, und einem roten Quadrat direkt darunter im oberen linken Quadranten, das den Inhalt des Clip-Bereichs widerspiegelt.

drawPixel#

Zeichnet einen Pixel auf dem IQ (2. Generation) 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 wurde.

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

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

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

Ein Screenshot des IQ Brain-Bildschirms mit einem winzigen weißen Punkt in der Mitte des Bildschirms.

drawLine#

Zeichnet eine gerade Linie, die zwei Punkte auf dem IQ (2. Generation) Gehirnbildschirm 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 IQ Brain-Bildschirms mit einer weißen diagonalen Linie, die von der oberen linken Ecke zur unteren rechten Ecke verläuft.

drawRectangle#

Zeichnet ein Rechteck auf dem IQ (2. Generation) 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 red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, red);

Ein Screenshot des IQ Brain-Bildschirms mit einem großen roten Rechteck mit dünnem weißen Rand, das nahezu mittig auf dem Bildschirm gezeichnet ist.

drawCircle#

Zeichnet einen Kreis auf dem IQ (2. Generation) 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 green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, green);

Ein Screenshot des IQ Brain-Bildschirms mit einem ausgefüllten grünen Kreis mit dünnem weißen Rand in der Mitte des Bildschirms.

drawImageFromFile#

Zeichnet ein Bild auf dem IQ (2. Generation) Brain-Bildschirm anhand 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 (160 x 108 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();