Layar#

Perkenalan#

Kelas screen diturunkan dari kelas dasar brain. Kelas ini mengontrol bagaimana IQ (generasi ke-2) Brain menampilkan teks, angka, dan grafik pada layar bawaannya.

Secara default, font untuk pencetakan ke Brain adalah monospaced kecil.

Untuk menggambar, resolusi Brain adalah 160 x 108 piksel.

Mengakses#

Kelas screen dapat diakses dengan:

Brain.Screen

Catatan#

  • Objek screen disediakan oleh Otak. Objek ini tidak dibangun secara langsung.

  • Proyek menggunakan satu objek global Brain , sehingga fungsi layar dipanggil menggunakan Brain.Screen.

Contoh#

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

Fungsi Keanggotaan#

Kelas screen mencakup fungsi anggota berikut:

  • print — Mencetak teks, angka, atau nilai Boolean yang diformat ke layar Brain.

  • setCursor — Memindahkan kursor teks ke baris dan kolom yang ditentukan.

  • newLine — Menghapus sisa baris saat ini dan memindahkan kursor ke baris berikutnya.

  • clearLine — Menghapus sisa baris saat ini atau menghapus baris tertentu.

  • row — Mengembalikan baris tempat teks akan dicetak.

  • column — Mengembalikan kolom tempat teks akan dicetak.

  • getStringHeight — Mengembalikan tinggi string dalam piksel menggunakan font saat ini.

  • getStringWidth — Mengembalikan lebar string dalam piksel menggunakan font saat ini.

  • printAt — Mencetak teks berformat pada lokasi piksel x, y (opsional buram).

  • clearScreen — Membersihkan seluruh layar (opsional ke warna tertentu).

  • setFont — Mengatur font yang digunakan untuk pencetakan di layar.

  • setPenWidth — Mengatur ketebalan garis yang digambar dan garis luar bentuk.

  • setPenColor — Mengatur warna teks, piksel, garis, dan garis luar bentuk.

  • setFillColor — Mengatur warna isi untuk bentuk yang digambar dan latar belakang teks yang dicetak.

  • setOrigin — Mengatur titik asal yang digunakan untuk koordinat layar.

  • setClipRegion — Membatasi output layar ke wilayah persegi panjang.

  • drawPixel — Menggambar satu piksel pada koordinat.

  • drawLine — Menggambar garis antara dua titik.

  • drawRectangle — Menggambar persegi panjang di lokasi x, y dengan ukuran yang ditentukan.

  • drawCircle — Menggambar lingkaran di lokasi x, y dengan radius yang ditentukan.

  • drawImageFromFile — Menggambar gambar dari file kartu SD ke layar.

  • render — Mengaktifkan double buffering atau merender back buffer ke layar.

  • pressing — Mengembalikan apakah layar sedang ditekan.

  • xPosition — Mengembalikan koordinat x dari penekanan layar terbaru.

  • yPosition — Mengembalikan koordinat y dari penekanan layar terbaru.

  • pressed — Mendaftarkan fungsi callback untuk dijalankan saat layar ditekan.

  • released — Mendaftarkan fungsi callback untuk dijalankan ketika layar dilepaskan setelah ditekan.

Sebelum memanggil fungsi anggota screen apa pun, sebuah instance brain harus dibuat, seperti yang ditunjukkan di bawah ini:

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

print#

Menampilkan teks, angka, atau nilai Boolean pada layar IQ (generasi ke-2) Brain.

Available Functions

1 — Mencetak teks yang diformat menggunakan literal string atau string gaya C yang hanya dapat dibaca.

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

2 — Mencetak teks yang diformat menggunakan larik karakter yang dapat dimodifikasi.

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

Parameters

Parameter

Jenis

Keterangan

format

const char*

String format yang diberikan sebagai literal string atau string gaya C yang hanya dapat dibaca (misalnya, “Score: %d”).

format

char*

String format yang diberikan sebagai larik karakter yang dapat dimodifikasi.

…

Satu atau lebih nilai tambahan yang dimasukkan ke dalam string format, dipisahkan oleh koma.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Output dimulai pada posisi kursor saat ini pada layar.

  • Teks yang dicetak menggunakan font layar saat ini .

  • Teks yang dicetak menggunakan warna pena saat ini.

  • Teks yang dicetak dengan print selalu dicetak dengan latar belakang, dan warna latar belakang ditentukan oleh warna isi saat ini.

  • Saat menggunakan string format, jumlah dan tipe nilai yang dilewatkan harus sesuai dengan penentu format dalam string.

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

Tangkapan layar IQ (generasi ke-2) Brain yang menunjukkan tulisan "Hello, Robot!" tercetak di layar di pojok kiri atas dengan teks putih.

setCursor#

Memindahkan kursor ke baris dan kolom tertentu pada layar IQ (generasi ke-2) Brain. Panggilan print berikutnya akan mulai mencetak di lokasi tersebut.

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

Parameters

Parameter

Jenis

Keterangan

row

int32_t

Baris tempat kursor akan dipindahkan.

col

int32_t

Kolom tempat kursor akan dipindahkan.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Mempengaruhi di mana keluaran teks selanjutnya dimulai ketika menggunakan print.

  • Baris dan kolom didasarkan pada font layar yang sedang diatur.

  • Font default (mono20) menggunakan 5 baris dan 16 kolom.

  • Memanggil setCursor hanya memengaruhi posisi keluaran teks berikutnya.

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

Tangkapan layar IQ (generasi ke-2) Brain yang menunjukkan angka 25 tercetak di kiri atas layar, pada posisi tersebut.

newLine#

Memindahkan kursor ke awal baris berikutnya di layar Otak.

Available Functions
void newLine();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Jika kursor berada di tengah kalimat, newLine akan menghapus sisa baris setelah kursor sebelum berpindah ke baris berikutnya.

  • Setelah memanggil newLine, kursor diposisikan pada kolom pertama baris berikutnya.

  • Posisi kursor dan penomoran baris diatur menggunakan setCursor.

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

Tangkapan layar IQ (generasi ke-2) Brain yang menunjukkan dua baris teks putih di sudut kiri atas. Baris atas bertuliskan Baris 1, dan baris kedua tepat di bawahnya bertuliskan Baris 2.

clearLine#

Menghapus teks dari satu baris pada layar IQ (generasi ke-2) Brain.

Available Functions

1 — Menghapus sisa baris saat ini dari posisi kursor.

void clearLine();

2 — Menghapus baris yang ditentukan menggunakan warna isi yang saat ini dikonfigurasi.

void clearLine(
    int number );

3 — Menghapus baris yang ditentukan menggunakan objek warna yang telah ditentukan sebelumnya atau warna kustom.

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

4 — Menghapus baris yang ditentukan menggunakan nilai warna heksadesimal.

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

5 — Menghapus baris yang ditentukan menggunakan nilai hue.

void clearLine(
    int number,
    int hue );

Parameters

Parameter

Jenis

Keterangan

number

int

Nomor baris yang akan dihapus. Penomoran baris dimulai dari 1.

color

const color&

Clears the row using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

Menghapus baris menggunakan nilai warna heksadesimal (misalnya, “#000000”).

hue

int

Menghapus baris menggunakan nilai hue bilangan bulat dalam rentang 0–359, yang mewakili derajat di sekitar roda warna.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Menghapus baris tidak mengubah posisi kursor saat ini.

  • Posisi kursor dan penomoran baris diatur menggunakan setCursor.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 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#

Mengembalikan baris tempat teks akan dicetak pada layar IQ (generasi ke-2) Brain.

Available Functions
int32_t row();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Mengembalikan nilai int32_t yang mewakili baris tempat teks akan dicetak.

Penomoran baris dimulai dari 1.

Notes
  • Posisi kursor didasarkan pada font layar saat ini .

  • Nilai yang dikembalikan menunjukkan di mana output cetak berikutnya akan muncul.

  • Nilai baris berubah ketika teks dicetak atau ketika setCursor dipanggil.

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

Tangkapan layar IQ (generasi ke-2) Brain yang menunjukkan baris teks 3 berwarna putih di sisi kiri layar, pada posisi baris 3 kolom 12.

column#

Mengembalikan kolom tempat teks akan dicetak pada layar IQ (generasi ke-2) Brain.

Available Functions
int32_t column();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Mengembalikan nilai int32_t yang mewakili kolom tempat teks akan dicetak.

Penomoran kolom dimulai dari 1.

Notes
  • Posisi kursor didasarkan pada font layar saat ini .

  • Nilai yang dikembalikan menunjukkan di mana output cetak berikutnya akan muncul.

  • Nilai kolom berubah ketika teks dicetak atau ketika setCursor dipanggil.

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

Tangkapan layar IQ (generasi ke-2) Brain yang menunjukkan kolom: 9 berwarna putih di bagian atas layar, pada posisi baris 1 kolom 9.

getStringHeight#

Mengembalikan tinggi, dalam piksel, dari sebuah string saat ditampilkan pada layar IQ (generasi ke-2) Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parameter

Jenis

Keterangan

cstr

const char*

Teks yang akan diukur, diberikan sebagai string bergaya C (misalnya, “Hello”).

Return Values

Mengembalikan nilai int32_t yang mewakili tinggi string dalam piksel saat ditampilkan di layar Brain.

Notes
  • Tinggi yang dikembalikan bergantung pada font layar yang saat ini dipilih ( .

  • Fungsi ini mengukur string tanpa menggambarkannya di layar.

  • Tinggi yang dikembalikan mencerminkan bagaimana string tersebut akan terlihat saat dicetak.

getStringWidth#

Mengembalikan lebar, dalam piksel, dari sebuah string saat ditampilkan pada layar IQ (generasi ke-2) Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parameter

Jenis

Keterangan

cstr

const char*

Teks yang akan diukur, diberikan sebagai string bergaya C (misalnya, “Hello”).

Return Values

Mengembalikan nilai int32_t yang mewakili lebar string dalam piksel saat ditampilkan di layar Brain.

Notes
  • Lebar yang dikembalikan bergantung pada font layar yang saat ini dipilih ( .

  • Fungsi ini mengukur string tanpa menggambarkannya di layar.

  • Lebar yang dikembalikan mencerminkan bagaimana string akan terlihat saat dicetak.

printAt#

Mencetak teks, angka, atau nilai Boolean pada koordinat tertentu di layar IQ (generasi ke-2) Brain.

Available Functions

1 — Mencetak output yang diformat pada lokasi piksel yang ditentukan.

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

2 — Mencetak output yang diformat pada lokasi piksel yang ditentukan dan mengatur apakah latar belakang teks buram atau transparan.

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

Parameters

Parameter

Jenis

Keterangan

x

int32_t

Posisi x untuk mencetak, mengacu pada titik asal layar.

y

int32_t

Posisi y untuk mencetak, mengacu pada titik asal layar.

bOpaque

bool

Mengontrol apakah teks yang dicetak digambar buram atau transparan:

  • true — Latar belakang teks yang dicetak diisi menggunakan warna isian saat ini.
  • false — Teks digambar transparan dan latar belakang tidak diisi.

format

const char*

String format yang mengontrol apa yang dicetak di layar (misalnya, “Score: %d”).

…

Satu atau lebih nilai tambahan yang dimasukkan ke dalam string format, dipisahkan oleh koma.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

  • Teks yang dicetak menggunakan font layar saat ini .

  • Teks yang dicetak menggunakan warna pena saat ini.

  • Saat menggunakan string format, jumlah dan tipe nilai yang dilewatkan harus sesuai dengan penentu format dalam string.

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

Tangkapan layar IQ (generasi ke-2) Layar Otak dengan teks putih bertuliskan 1, tercetak di (100, 40).

clearScreen#

Menghapus semua gambar dan teks dari layar Otak.

Available Functions

1 — Menghapus semua data di layar menjadi hitam.

void clearScreen();

2 — Membersihkan layar menggunakan objek warna yang telah ditentukan atau warna kustom.

void clearScreen(
    const color& color );

3 — Membersihkan layar menggunakan nilai warna heksadesimal.

void clearScreen(
    const char* color );

4 — Membersihkan layar menggunakan nilai hue.

void clearScreen(
    int hue );

Parameters

Parameter

Jenis

Keterangan

color

const color&

Clears the screen using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

Menghapus layar menggunakan nilai warna heksadesimal yang direpresentasikan sebagai string (misalnya, “#000000”).

hue

int

Membersihkan layar menggunakan nilai hue bilangan bulat dalam rentang 0–359, yang mewakili derajat di sekitar roda warna.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 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);

Tangkapan layar IQ (generasi ke-2) Brain dengan seluruh area yang dapat dicetak berwarna merah terang.

setFont#

Mengatur font yang digunakan untuk teks yang ditampilkan pada layar IQ (generasi ke-2) Brain.

Ini mengontrol font yang diterapkan pada output teks selanjutnya saat menggunakan fungsi teks layar seperti print.

Available Functions
void setFont(
  fontType font );

Parameters

Parameter

Jenis

Keterangan

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.

Tangkapan layar VEX IQ Brain dengan serangkaian angka dan huruf dalam font Mono 12. Huruf AZ berada dalam satu baris, membentang selebar layar. Sudut kiri bawah menunjukkan 26 karakter mendatar dan 9 baris.
mono12

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Mono 15. Huruf AT berada dalam satu baris, membentang selebar layar. Sudut kiri bawah menunjukkan 20 karakter mendatar dan 7 baris.
mono15

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Mono 20. Huruf AP berada dalam satu baris, membentang selebar layar. Sudut kiri bawah menunjukkan 16 karakter mendatar dan 5 baris.
mono20

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Mono 30. Angka 1 sampai 9 dan angka 0 tambahan berada dalam satu baris, membentang selebar layar. Sudut kiri bawah menunjukkan 3 baris.
mono30

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Mono 40. Angka 1 sampai 8 berada di baris kedua, membentang selebar layar.
mono40

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Mono 60. Layar menunjukkan MN 60 dalam font besar, hampir memenuhi seluruh bagian atas layar.
mono60

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Prop 20. Huruf AW berada dalam satu baris, membentang selebar layar. Sudut kiri bawah menunjukkan 26 karakter mendatar dan 5 baris.
prop20

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Prop 30. Angka 1-9 diulang dua kali dalam satu baris, membentang selebar layar. Sudut kiri bawah menunjukkan 18 karakter mendatar dan 3 baris.
prop30

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Prop 40. Layar menampilkan Prop 40 di baris atas dan menunjukkan 14 karakter dan 2 baris di baris kedua.
prop40

Tangkapan layar yang sama seperti sebelumnya, sekarang dengan font Prop 60. Layar menampilkan tulisan PROP 60 dengan font besar, hampir memenuhi seluruh bagian atas layar.
prop60

Return Values

Fungsi ini tidak mengembalikan nilai.

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

Tangkapan layar IQ Brain dengan teks putih dalam dua baris di pojok kiri atas. Baris pertama bertuliskan Mono Medium dan baris kedua tepat di bawahnya bertuliskan Prop Medium dengan ukuran font lebih kecil.

setPenWidth#

Mengatur ketebalan garis yang digambar dan garis luar bentuk.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parameter

Jenis

Keterangan

width

uint32_t

Lebar pena, dalam piksel, dari 0 hingga 32.

Return Values

Fungsi ini tidak mengembalikan nilai.

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

Tangkapan layar IQ Brain dengan dua lingkaran putih tercetak di bagian bawah layar. Lingkaran di sebelah kiri digambar dengan batas yang lebih sempit daripada yang di sebelah kanan.

setPenColor#

Mengatur warna teks, piksel, garis, dan garis luar bentuk.

Available Functions

1 — Mengatur warna pena menggunakan objek warna yang telah ditentukan sebelumnya atau warna kustom.

void setPenColor(
    const color& color );

2 — Mengatur warna pena menggunakan nilai warna heksadesimal.

void setPenColor(
    const char* color );

3 Mengatur warna pena menggunakan nilai hue.

void setPenColor(
    int hue );

Parameters

Parameter

Jenis

Keterangan

color

const color&

Mengatur warna pena menggunakan objek color Warna yang telah ditentukan meliputi:

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

color

const char*

Mengatur warna pena menggunakan nilai warna heksadesimal yang direpresentasikan sebagai string (misalnya, “#FF0000”).

hue

int

Mengatur warna pena menggunakan nilai hue bilangan bulat dalam rentang 0–359, yang mewakili derajat di sekitar roda warna (misalnya, 0 adalah merah, 120 adalah hijau, dan 240 adalah biru).

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Warna pena default di awal proyek adalah white.

  • Warna pena digunakan untuk garis luar bentuk (seperti dengan drawCircle atau drawRectangle), teks dan keluaran numerik (dengan print dan printAt), dan piksel individual yang digambar dengan drawPixel.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 240.

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

Tangkapan layar IQ Brain dengan dua persegi panjang kecil yang digambar di bagian bawah layar. Persegi panjang di sebelah kiri berwarna biru, dan yang di sebelah kanan berwarna putih.

setFillColor#

Mengatur warna isian yang digunakan saat bentuk digambar.

Available Functions

1 — Mengatur warna isian menggunakan objek warna yang telah ditentukan sebelumnya atau warna kustom.

void setFillColor(
    const color& color );

2 — Mengatur warna isian menggunakan nilai warna heksadesimal.

void setFillColor(
    const char* color );

3 — Mengatur warna isian menggunakan nilai hue.

void setFillColor(
    int hue );

Parameters

Parameter

Jenis

Keterangan

color

const color&

Mengatur warna isian menggunakan objek color Warna yang telah ditentukan meliputi:

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

color

const char*

Mengatur warna isian menggunakan nilai warna heksadesimal yang direpresentasikan sebagai string (misalnya, “#00FF00”).

hue

int

Mengatur warna isian menggunakan nilai hue bilangan bulat dalam rentang 0–359, yang mewakili derajat di sekitar roda warna (misalnya, 0 adalah merah, 120 adalah hijau, dan 240 adalah biru).

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Warna isian default di awal proyek adalah black.

  • Warna isian digunakan untuk bagian dalam bentuk (seperti pada drawCircle atau drawRectangle).

  • Warna isian digunakan sebagai warna latar belakang untuk teks yang dicetak (seperti pada print dan printAt).

    • Jika transparent digunakan dengan teks yang dicetak, latar belakangnya akan menjadi black.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 240.

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

Tangkapan layar IQ Brain dengan lingkaran kuning terang dengan garis putih tipis yang digambar di sisi kiri layar.

setOrigin#

Menentukan titik asal yang digunakan untuk menggambar dan mencetak berdasarkan koordinat pada layar Brain.

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

Parameters

Parameter

Jenis

Keterangan

x

int32_t

Posisi x titik asal relatif terhadap pojok kiri atas layar Brain dari 0 hingga 159.

y

int32_t

Posisi y titik asal relatif terhadap pojok kiri atas layar Brain dari 0 hingga 107.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Titik asal default adalah pojok kiri atas layar pada koordinat (0, 0).

  • Asal usul berlaku untuk fungsi koordinat seperti drawLine, drawRectangle, drawCircle, dan printAt.

  • Pengaturan awal tetap berlaku sampai diubah lagi atau proyek direset.

setClipRegion#

Menentukan area persegi panjang di layar tempat semua gambar dan teks akan dibatasi. Konten apa pun di luar area ini tidak akan ditampilkan.

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

Parameters

Parameter

Jenis

Keterangan

x

int

Koordinat x dari sudut kiri atas wilayah klip, diberikan sebagai bilangan bulat dari 0 hingga 159.

y

int

Koordinat y dari sudut kiri atas wilayah klip, diberikan sebagai bilangan bulat dari 0 hingga 107.

width

int

Lebar area pemotongan dalam piksel, diberikan sebagai bilangan bulat dari 0 hingga 159.

height

int

Tinggi area pemotongan dalam piksel, diberikan sebagai bilangan bulat dari 0 hingga 107.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Fungsi menggambar tetap dijalankan meskipun berada di luar area pemotongan, tetapi hanya bagian di dalam area tersebut yang terlihat.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

  • Area pemotongan hanya berlaku untuk thread saat ini.

  • Menetapkan wilayah klip baru akan menggantikan wilayah klip yang sebelumnya ditetapkan untuk thread saat ini.

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

Tangkapan layar IQ (generasi ke-2) Brain dengan teks putih bertuliskan "Cut off" dengan kotak merah solid tepat di bawahnya di kuadran kiri atas, yang mencerminkan apa yang tercetak di dalam area klip.

drawPixel#

Menggambar satu piksel pada layar IQ (generasi ke-2) Brain di lokasi piksel x dan y yang dipilih.

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

Parameters

Parameter

Jenis

Keterangan

x

int

Koordinat x tempat piksel akan digambar, diberikan sebagai bilangan bulat dari 0 hingga 159.

y

int

Koordinat y tempat piksel akan digambar, diberikan sebagai bilangan bulat dari 0 hingga 107.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Piksel digambar menggunakan warna pena saat ini yang diatur dengan setPenColor.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diatur menggunakan setOrigin.

  • Jika lokasi piksel yang ditentukan berada di luar batas layar, piksel tersebut tidak akan digambar.

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

Tangkapan layar IQ Brain dengan titik putih kecil di tengah layar.

drawLine#

Menggambar garis lurus yang menghubungkan dua titik pada layar IQ (generasi ke-2) Brain.

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

Parameters

Parameter

Jenis

Keterangan

x1

int

Koordinat x awal garis, diberikan sebagai bilangan bulat dari 0 hingga 159.

y1

int

Koordinat y awal garis, diberikan sebagai bilangan bulat dari 0 hingga 107.

x2

int

Koordinat x terakhir dari garis tersebut, diberikan sebagai bilangan bulat dari 0 hingga 159.

y2

int

Koordinat y ujung garis, diberikan sebagai bilangan bulat dari 0 hingga 107.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Garis digambar menggunakan warna pena saat ini yang diatur dengan setPenColor.

  • Lebar garis ditentukan oleh lebar pena saat ini yang diatur dengan setPenWidth.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diatur menggunakan setOrigin.

  • Jika ada bagian garis yang berada di luar batas layar, hanya bagian yang terlihat yang akan digambar.

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

Tangkapan layar IQ Brain dengan garis diagonal putih yang ditarik dari sudut kiri atas ke sudut kanan bawah.

drawRectangle#

Menggambar persegi panjang pada layar IQ (generasi ke-2) Brain pada posisi dan ukuran yang ditentukan.

Available Functions

1 — Menggambar dan mengisi persegi panjang menggunakan warna isi yang saat ini dikonfigurasi.

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

2 — Menggambar dan mengisi persegi panjang menggunakan objek warna yang telah ditentukan atau warna kustom.

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

3 — Menggambar dan mengisi persegi panjang menggunakan nilai warna heksadesimal.

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

4 — Menggambar dan mengisi persegi panjang menggunakan nilai hue.

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

Parameters

Parameter

Jenis

Keterangan

x

int

Koordinat x dari sudut kiri atas persegi panjang, diberikan sebagai bilangan bulat dari 0 hingga 159.

y

int

Koordinat y dari sudut kiri atas persegi panjang, diberikan sebagai bilangan bulat dari 0 hingga 107.

width

int

Lebar persegi panjang, diberikan sebagai bilangan bulat dari 0 hingga 159.

height

int

Tinggi persegi panjang, diberikan sebagai bilangan bulat dari 0 hingga 107.

color

const color&

Mengisi persegi panjang menggunakan objek warna color

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Ini juga dapat menggunakan objek warna kustom.

color

const char*

Mengisi persegi panjang menggunakan nilai warna heksadesimal (misalnya, “#FF0000”).

hue

int

Mengisi persegi panjang menggunakan nilai rona dalam rentang 0–359.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Garis luar persegi panjang digambar menggunakan warna pena saat ini yang diatur dengan setPenColor.

  • Ketebalan garis luar ditentukan oleh lebar pena saat ini yang diatur dengan setPenWidth.

  • When no color parameter is provided, the rectangle interior is filled using the current fill color set with setFillColor.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

  • Jika ada bagian dari persegi panjang yang berada di luar batas layar, hanya bagian yang terlihat yang akan digambar.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 240.

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

Tangkapan layar IQ Brain dengan persegi panjang merah besar dengan garis tepi putih tipis yang digambar hampir di tengah layar.

drawCircle#

Menggambar lingkaran pada layar IQ (generasi ke-2) Brain pada posisi dan radius yang ditentukan.

Available Functions

1 — Menggambar dan mengisi lingkaran menggunakan warna isi yang saat ini dikonfigurasi.

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

2 — Menggambar dan mengisi lingkaran menggunakan objek warna yang telah ditentukan atau warna kustom.

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

3 — Menggambar dan mengisi lingkaran menggunakan nilai warna heksadesimal.

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

4 — Menggambar dan mengisi lingkaran menggunakan nilai hue.

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

Parameters

Parameter

Jenis

Keterangan

x

int

Koordinat x dari pusat lingkaran, diberikan sebagai bilangan bulat dari 0 hingga 159.

y

int

Koordinat y dari pusat lingkaran, diberikan sebagai bilangan bulat dari 0 hingga 107.

radius

int

Jari-jari lingkaran, diberikan sebagai bilangan bulat dari 0 hingga 107 piksel.

color

const color&

Fills the circle using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

Mengisi lingkaran menggunakan nilai warna heksadesimal (misalnya, “#FF0000”).

hue

int

Mengisi lingkaran menggunakan nilai rona dalam rentang 0–359.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Garis luar lingkaran digambar menggunakan warna pena saat ini yang diatur dengan setPenColor.

  • Ketebalan garis luar ditentukan oleh lebar pena saat ini yang diatur dengan setPenWidth.

  • When no color parameter is provided, the circle interior is filled using the current fill color set with setFillColor.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 240.

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

Tangkapan layar IQ Brain dengan lingkaran hijau solid dengan garis putih tipis di tengah layar.

drawImageFromFile#

Menggambar gambar pada layar IQ (generasi ke-2) Brain menggunakan file gambar yang tersimpan di kartu SD.

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

Parameters

Parameter

Jenis

Keterangan

name

const char*

Nama file gambar di kartu SD. File harus memiliki ekstensi .bmp atau .png.

x

int

Koordinat x, dalam piksel dari 0 hingga 159, di mana tepi kiri gambar akan digambar.

y

int

Koordinat y, dalam piksel dari 0 hingga 107, di mana tepi atas gambar akan digambar.

Return Values

Mengembalikan nilai Boolean yang menunjukkan apakah gambar berhasil digambar:

  • true — Gambar berhasil dimuat dan digambar di layar.
  • false — Gambar tidak dapat digambar (misalnya, jika file tidak ada atau tidak valid).

Notes
  • Format gambar yang didukung adalah .bmp dan .png.

  • Ukuran berkas gambar tidak boleh melebihi 512 KB

    • Pengkodean RLE 8-bit direkomendasikan untuk meminimalkan ukuran file.

  • Dimensi gambar maksimum yang didukung adalah ukuran layar Brain (160 x 108 piksel).

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

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

render#

Mengaktifkan double buffering untuk layar Brain. Setelah dipanggil, fungsi menggambar apa pun (seperti teks, bentuk, atau gambar) tidak akan langsung muncul lagi untuk sisa proyek. Sebaliknya, pembaruan hanya akan ditampilkan saat render digunakan lagi. Ini memungkinkan pembaruan layar yang lebih halus dan terkontrol, tetapi berarti tidak ada yang akan terlihat sampai render digunakan.

Available Functions

1 — Mengaktifkan double buffering atau menampilkan buffer belakang ke layar.

bool render();

2 — Menampilkan buffer belakang ke layar dengan kontrol atas perilaku sinkronisasi vertikal dan eksekusi penjadwal opsional.

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

Parameters

Parameter

Jenis

Keterangan

bVsyncWait

bool

​

  • true — Tunggu hingga layar melakukan penyegaran vertikal sebelum melakukan rendering untuk mengurangi robekan visual.
  • false — Jangan menunggu hingga layar melakukan penyegaran vertikal sebelum melakukan rendering.

bRunScheduler

bool

Opsional.

  • true (default) — Izinkan tugas latar belakang berjalan saat menunggu rendering.
  • false — Jangan izinkan tugas latar belakang berjalan saat menunggu rendering.

Return Values

Mengembalikan nilai Boolean yang menunjukkan apakah gambar yang tersimpan dalam buffer berhasil ditampilkan di layar:

  • true — Gambar berhasil ditampilkan di layar.
  • false — Gambar tidak dapat ditampilkan di layar.
  • Notes
    • Memanggil render akan mengharuskan render digunakan untuk sisa proyek.

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