Màn hình#

Giới thiệu#

Lớp screen được kế thừa từ lớp cơ sở brain. Nó kiểm soát cách EXP Brain hiển thị văn bản, số và đồ họa trên màn hình của nó.

Màn hình của EXP Brain có số lượng hàng và cột cố định được sử dụng khi in văn bản lên màn hình.

Theo mặc định, phông chữ dùng để in lên Brain là mono20 , có 7 hàng và 20 cột.

Đối với việc vẽ, độ phân giải của Brain là 159 x 107 pixel.

Sơ đồ lưới có chú thích của màn hình VEX Brain hiển thị các hàng, cột, kích thước pixel và tọa độ, với các đường màu đỏ phác thảo lưới.

Truy cập#

Lớp screen có thể được truy cập bằng cách:

Brain.Screen

Ghi chú#

  • Đối tượng màn hình screen được cung cấp bởi Bộ não. Nó không được tạo ra trực tiếp.

  • Projects use a single global Brain object, so screen functions are called using Brain.Screen.

Ví dụ#

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

Chức năng thành viên#

Lớp màn hình screen bao gồm các hàm thành viên sau:

  • print — In văn bản, số hoặc giá trị Boolean được định dạng lên màn hình Brain.

  • setCursor — Di chuyển con trỏ văn bản đến hàng và cột được chỉ định.

  • newLine — Xóa phần còn lại của dòng hiện tại và di chuyển con trỏ đến dòng tiếp theo.

  • clearLine — Xóa phần còn lại của dòng hiện tại hoặc xóa một dòng được chỉ định.

  • row — Trả về hàng mà văn bản sẽ được in.

  • column — Trả về cột mà văn bản sẽ được in.

  • getStringHeight — Trả về chiều cao của một chuỗi tính bằng pixel sử dụng phông chữ hiện tại.

  • getStringWidth — Trả về chiều rộng của một chuỗi tính bằng pixel sử dụng phông chữ hiện tại.

  • printAt — In văn bản được định dạng tại vị trí pixel x, y (tùy chọn mờ đục).

  • clearScreen — Xóa toàn bộ màn hình (tùy chọn thành một màu được chỉ định).

  • setFont — Đặt phông chữ được sử dụng để in trên màn hình.

  • setPenWidth — Đặt độ dày của các đường vẽ và đường viền hình dạng.

  • setPenColor — Đặt màu cho văn bản, pixel, đường kẻ và đường viền hình dạng.

  • setFillColor — Đặt màu tô cho các hình vẽ và nền văn bản in.

  • setOrigin — Đặt gốc được sử dụng cho tọa độ màn hình.

  • setClipRegion — Giới hạn đầu ra màn hình thành một vùng hình chữ nhật.

  • drawPixel — Vẽ một pixel tại tọa độ.

  • drawLine — Vẽ một đường thẳng giữa hai điểm.

  • drawRectangle — Vẽ một hình chữ nhật tại vị trí x, y với kích thước được chỉ định.

  • drawCircle — Vẽ một hình tròn tại vị trí x, y với bán kính được chỉ định.

  • drawImageFromFile — Vẽ một hình ảnh từ tệp trên thẻ SD lên màn hình.

  • render — Cho phép đệm kép hoặc hiển thị bộ đệm phía sau lên màn hình.

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

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

print#

Hiển thị văn bản, số hoặc giá trị Boolean trên màn hình EXP Brain.

Available Functions

1 — In văn bản được định dạng bằng cách sử dụng chuỗi ký tự hoặc chuỗi kiểu C chỉ đọc.

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

2 — In văn bản được định dạng bằng cách sử dụng mảng ký tự có thể chỉnh sửa.

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

Parameters

Tham số

Kiểu

Sự miêu tả

format

const char*

Chuỗi định dạng được cung cấp dưới dạng chuỗi ký tự hoặc chuỗi kiểu C chỉ đọc (ví dụ: “Score: %d”).

format

char*

Chuỗi định dạng được cung cấp dưới dạng mảng ký tự có thể chỉnh sửa.

…

Một hoặc nhiều giá trị bổ sung được chèn vào chuỗi định dạng, phân cách nhau bằng dấu phẩy.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Quá trình xuất dữ liệu bắt đầu từ vị trí con trỏ hiện tại trên màn hình.

  • Văn bản in sử dụng phông chữ màn hình hiện tại là .

  • Văn bản in sử dụng màu bút hiện tại là và màu.

  • Văn bản được in với print luôn được in kèm nền, và màu nền được xác định bởi current fill color.

  • Khi sử dụng chuỗi định dạng, số lượng và loại giá trị được truyền phải khớp với định dạng chỉ định trong chuỗi.

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

Ảnh chụp màn hình EXP Brain hiển thị dòng chữ "Hello, Robot!" ở góc trên bên trái màn hình bằng chữ trắng.

setCursor#

Di chuyển con trỏ đến một hàng và cột cụ thể trên màn hình EXP Brain. Lệnh print tiếp theo sẽ bắt đầu in tại vị trí đó.

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

Parameters

Tham số

Kiểu

Sự miêu tả

row

int32_t

Hàng cần di chuyển con trỏ đến.

col

int32_t

Cột cần di chuyển con trỏ đến.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Ảnh hưởng đến vị trí bắt đầu xuất văn bản tiếp theo khi sử dụng print.

  • Hàng và cột dựa trên phông chữ màn hình hiện đang được đặt.

  • Phông chữ mặc định (mono20) sử dụng 12 hàng và 48 cột.

  • Việc gọi hàm setCursor chỉ ảnh hưởng đến vị trí của đoạn văn bản được xuất ra sau đó.

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

Ảnh chụp màn hình EXP Brain hiển thị Hàng 3 Cột 12 được in ở phần trên gần giữa màn hình, tại vị trí đó.

newLine#

Di chuyển con trỏ đến đầu hàng tiếp theo trên màn hình Brain.

Available Functions
void newLine();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Nếu con trỏ nằm ở giữa câu, lệnh newLine sẽ xóa phần còn lại của hàng sau con trỏ trước khi chuyển sang hàng tiếp theo.

  • Sau khi gọi lệnh newLine, con trỏ được đặt tại cột đầu tiên của dòng tiếp theo.

  • Vị trí con trỏ và số hàng được thiết lập bằng cách sử dụng setCursor.

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

Ảnh chụp màn hình EXP Brain hiển thị hai dòng chữ màu trắng ở góc trên bên trái. Dòng trên cùng ghi là Dòng 1, và dòng thứ hai ngay bên dưới ghi là Dòng 2.

clearLine#

Xóa văn bản khỏi một hàng trên màn hình EXP Brain.

Available Functions

1 — Xóa phần còn lại của dòng hiện tại từ vị trí con trỏ.

void clearLine();

2 — Clears the specified row using the currently configured fill color.

void clearLine(
    int number );

3 — Xóa hàng được chỉ định bằng cách sử dụng đối tượng được xác định trước hoặc màu tùy chỉnh.

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

4 — Xóa hàng được chỉ định bằng cách sử dụng giá trị màu thập lục phân.

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

5 — Xóa hàng được chỉ định bằng cách sử dụng giá trị màu sắc.

void clearLine(
    int number,
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

number

int

Số hàng cần xóa. Số hàng bắt đầu từ 1.

color

const color&

Xóa hàng bằng cách sử dụng đối tượng màu color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Điều này cũng có thể sử dụng đối tượng màu tùy chỉnh.

color

const char*

Xóa hàng bằng cách sử dụng giá trị màu thập lục phân (ví dụ: “#000000”).

hue

int

Xóa hàng bằng cách sử dụng giá trị sắc độ nguyên trong phạm vi 0–359, biểu thị độ xung quanh vòng tròn màu.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Xóa một dòng không làm thay đổi vị trí con trỏ hiện tại.

  • Vị trí con trỏ và số hàng được thiết lập bằng cách sử dụng setCursor.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 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#

Trả về dòng chứa văn bản sẽ được in trên màn hình EXP Brain.

Available Functions
int32_t row();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về một giá trị int32_t biểu thị dòng sẽ in văn bản.

Số thứ tự hàng bắt đầu từ 1.

Notes
  • Vị trí con trỏ dựa trên phông chữ màn hình hiện tại .

  • Giá trị trả về cho biết vị trí hiển thị của thông tin in tiếp theo.

  • Giá trị hàng thay đổi khi văn bản được in hoặc khi setCursor được gọi.

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

Ảnh chụp màn hình EXP Brain hiển thị chữ số 3 màu trắng ở góc trên bên trái màn hình, tại vị trí hàng 3 cột 10.

column#

Trả về cột chứa văn bản sẽ được in trên màn hình EXP Brain.

Available Functions
int32_t column();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về một giá trị int32_t biểu thị cột sẽ in văn bản.

Số thứ tự cột bắt đầu từ 1.

Notes
  • Vị trí con trỏ dựa trên phông chữ màn hình hiện tại .

  • Giá trị trả về cho biết vị trí hiển thị của thông tin in tiếp theo.

  • Giá trị cột thay đổi khi văn bản được in hoặc khi setCursor được gọi.

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

Ảnh chụp màn hình EXP Brain hiển thị văn bản 10 màu trắng ở góc trên bên trái màn hình, tại vị trí hàng 3 cột 10.

getStringHeight#

Trả về chiều cao, tính bằng pixel, của một chuỗi khi được hiển thị trên màn hình EXP Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Tham số

Kiểu

Sự miêu tả

cstr

const char*

Văn bản cần đo được cung cấp dưới dạng chuỗi kiểu C (ví dụ: “Hello”).

Return Values

Trả về một giá trị int32_t biểu thị chiều cao của chuỗi ký tự tính bằng pixel khi được hiển thị trên màn hình Brain.

Notes
  • The returned height depends on the currently selected screen font.

  • Chức năng này đo chiều dài chuỗi mà không cần vẽ nó lên màn hình.

  • Chiều cao trả về phản ánh cách chuỗi ký tự sẽ hiển thị khi được in ra.

getStringWidth#

Trả về chiều rộng, tính bằng pixel, của một chuỗi khi được hiển thị trên màn hình EXP Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Tham số

Kiểu

Sự miêu tả

cstr

const char*

Văn bản cần đo được cung cấp dưới dạng chuỗi kiểu C (ví dụ: “Hello”).

Return Values

Trả về một giá trị int32_t biểu thị chiều rộng của chuỗi tính bằng pixel khi được hiển thị trên màn hình Brain.

Notes
  • The returned width depends on the currently selected screen font.

  • Chức năng này đo chiều dài chuỗi mà không cần vẽ nó lên màn hình.

  • Độ rộng trả về phản ánh cách chuỗi ký tự sẽ hiển thị khi được in ra.

printAt#

In văn bản, số hoặc giá trị Boolean tại một tọa độ cụ thể trên màn hình EXP Brain.

Available Functions

1 — In ra kết quả đã định dạng tại vị trí pixel được chỉ định.

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

2 — In ra kết quả được định dạng tại vị trí pixel được chỉ định và thiết lập xem nền văn bản là mờ hay trong suốt.

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

Parameters

Tham số

Kiểu

Sự miêu tả

x

int32_t

Vị trí x cần in, được tham chiếu đến gốc tọa độ màn hình.

y

int32_t

Vị trí trục y để in, được tham chiếu đến gốc tọa độ màn hình.

bOpaque

bool

Điều khiển xem văn bản in được vẽ mờ hay trong suốt:

  • true — Nền của văn bản in được tô bằng màu tô hiện tại.
  • false — Văn bản được vẽ trong suốt và nền không được tô.

format

const char*

Chuỗi định dạng kiểm soát những gì được in trên màn hình (ví dụ: “Score: %d”).

…

Một hoặc nhiều giá trị bổ sung được chèn vào chuỗi định dạng, phân cách nhau bằng dấu phẩy.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

  • Văn bản in sử dụng phông chữ màn hình hiện tại là .

  • Văn bản in sử dụng màu bút hiện tại là và màu.

  • Khi sử dụng chuỗi định dạng, số lượng và loại giá trị được truyền phải khớp với định dạng chỉ định trong chuỗi.

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

clearScreen#

Xóa tất cả hình vẽ và văn bản khỏi màn hình của Brain.

Available Functions

1 — Xóa màn hình thành màu đen.

void clearScreen();

2 — Xóa màn hình bằng cách sử dụng đối tượng được xác định trước hoặc màu tùy chỉnh.

void clearScreen(
    const color& color );

3 — Xóa màn hình bằng giá trị màu thập lục phân.

void clearScreen(
    const char* color );

4 — Xóa màn hình bằng cách sử dụng giá trị màu sắc.

void clearScreen(
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

color

const color&

Xóa màn hình bằng cách sử dụng đối tượng màu color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Điều này cũng có thể sử dụng đối tượng màu tùy chỉnh.

color

const char*

Xóa màn hình bằng cách sử dụng giá trị màu thập lục phân được biểu diễn dưới dạng chuỗi (ví dụ: “#000000”).

hue

int

Xóa màn hình bằng cách sử dụng giá trị màu sắc nguyên trong phạm vi 0–359, biểu thị độ xung quanh vòng tròn màu.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

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


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

setFont#

Thiết lập phông chữ được sử dụng cho văn bản hiển thị trên màn hình EXP Brain.

Điều này kiểm soát phông chữ được áp dụng cho đầu ra văn bản tiếp theo khi sử dụng các chức năng văn bản màn hình như print.

Available Functions
void setFont(
  fontType font );

Parameters

Tham số

Kiểu

Sự miêu tả

font

fontType

Thiết lập phông chữ thành một trong các tùy chọn sau:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
Các tùy chọn này được hiển thị bên dưới.

Màn hình của Brain in các số và chữ cái với cỡ chữ mono 12. Nó hiển thị các chữ cái từ A đến Z và tất cả các số. Ở cuối màn hình, nó ghi 9 hàng, 26 cột.
mono12

Màn hình của Brain in các số và chữ cái với cỡ chữ mono 15. Nó hiển thị các chữ cái từ A đến T và tất cả các số. Ở cuối màn hình, nó ghi 7 hàng, 22 cột.
mono15

Màn hình của Brain in các số và chữ cái với cỡ chữ mono 20. Nó hiển thị các chữ cái từ A đến P và tất cả các số. Ở cuối màn hình, nó ghi 5 hàng, 16 cột.
mono20

Màn hình của Brain in các số và chữ cái với cỡ chữ mono 30. Nó hiển thị các chữ cái từ A đến J. Ở dưới cùng của màn hình, nó ghi R:3 C:10.
mono30

Màn hình của Brain in các số và chữ cái với cỡ chữ mono 40. Ở dưới cùng của màn hình, nó ghi R:2 C:8.
mono40

Màn hình của Brain in các số và chữ cái với cỡ chữ mono 60. Chỉ hiển thị MON60.
mono60

Màn hình của Brain in các số và chữ cái với cỡ chữ prop 20. Nó hiển thị các chữ cái từ A đến W và tất cả các số. Ở cuối màn hình, nó ghi 5 hàng, 16 cột.
prop20

Màn hình của Brain in các số và chữ cái với cỡ chữ prop 30. Nó hiển thị các chữ cái từ A đến P. Ở dưới cùng của màn hình, nó ghi R:3 C:10.
prop30

Màn hình của Brain in các số và chữ cái với cỡ chữ prop 40. Ở dưới cùng của màn hình, nó ghi R:2 C:8.
prop40

Màn hình của Brain in các số và chữ cái với cỡ chữ prop 60. Chỉ PROP60 được hiển thị.
prop60

Return Values

Hàm này không trả về giá trị nào.

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

Ảnh chụp màn hình EXP Brain hiển thị văn bản màu trắng có nội dung VEX với phông chữ lớn hơn mặc định ở góc trên bên trái.

setPenWidth#

Thiết lập độ dày của các đường vẽ và đường viền hình dạng.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Tham số

Kiểu

Sự miêu tả

width

uint32_t

Độ rộng của bút tính bằng pixel nằm trong khoảng từ 0 đến 32.

Return Values

Hàm này không trả về giá trị nào.

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

Ảnh chụp màn hình EXP Brain hiển thị một hình chữ nhật có viền dày được in ở phía bên trái màn hình.

setPenColor#

Thiết lập màu bút được sử dụng để vẽ đường thẳng, hình dạng và văn bản.

Available Functions

1 — Đặt màu bút bằng cách sử dụng đối tượng được xác định trước hoặc màu tùy chỉnh.

void setPenColor(
    const color& color );

2 — Đặt màu bút bằng giá trị màu thập lục phân.

void setPenColor(
    const char* color );

3 — Đặt màu bút bằng cách sử dụng giá trị sắc độ.

void setPenColor(
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

color

const color&

Đặt màu bút bằng cách sử dụng đối tượng color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Điều này cũng có thể sử dụng đối tượng màu tùy chỉnh.

color

const char*

Thiết lập màu bút bằng cách sử dụng giá trị màu thập lục phân được biểu diễn dưới dạng chuỗi (ví dụ: “#FF0000”).

hue

int

Thiết lập màu bút bằng cách sử dụng giá trị sắc độ số nguyên trong phạm vi 0–359, biểu thị độ xung quanh vòng tròn màu (ví dụ: 0 là màu đỏ, 120 là màu xanh lá cây và 240 là màu xanh lam).

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Màu bút mặc định khi bắt đầu dự án là white.

  • Màu bút được sử dụng cho đường viền của các hình dạng (chẳng hạn như với drawCircle hoặc drawRectangle), văn bản và đầu ra số (với print và printAt) và các pixel riêng lẻ được vẽ bằng drawPixel.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

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

Ảnh chụp màn hình EXP Brain hiển thị một hình chữ nhật màu cam ở phía bên trái màn hình.

setFillColor#

Thiết lập màu nền được sử dụng khi vẽ các hình dạng.

Available Functions

1 — Đặt màu tô bằng cách sử dụng đối tượng được xác định trước hoặc màu tùy chỉnh.

void setFillColor(
    const color& color );

2 — Đặt màu tô bằng giá trị màu thập lục phân.

void setFillColor(
    const char* color );

3 — Đặt màu tô bằng cách sử dụng giá trị sắc độ.

void setFillColor(
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

color

const color&

Đặt màu tô bằng cách sử dụng đối tượng color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Điều này cũng có thể sử dụng đối tượng màu tùy chỉnh.

color

const char*

Thiết lập màu nền bằng cách sử dụng giá trị màu thập lục phân được biểu diễn dưới dạng chuỗi (ví dụ: “#00FF00”).

hue

int

Thiết lập màu nền bằng cách sử dụng giá trị sắc độ số nguyên trong phạm vi 0–359, biểu thị độ xung quanh vòng tròn màu (ví dụ: 0 là màu đỏ, 120 là màu xanh lá cây và 240 là màu xanh lam).

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Màu nền mặc định khi bắt đầu dự án là black.

  • Màu tô được sử dụng cho phần bên trong của các hình dạng (chẳng hạn như với drawCircle hoặc drawRectangle).

  • Màu tô được sử dụng làm màu nền cho văn bản in (chẳng hạn như với print và printAt).

    • Nếu sử dụng transparent với văn bản in, nền sẽ là black.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

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

Ảnh chụp màn hình EXP Brain hiển thị một hình chữ nhật màu tím ở phía bên trái màn hình.

setOrigin#

Thiết lập điểm gốc được sử dụng để vẽ đồ họa trên màn hình của bộ não.

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

Parameters

Tham số

Kiểu

Sự miêu tả

x

int32_t

Vị trí x của gốc tọa độ so với góc trên bên trái màn hình của Brain, từ 0 đến 159.

y

int32_t

Vị trí trục y của điểm gốc so với góc trên bên trái màn hình của Brain từ 0 đến 107.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Điểm gốc mặc định là góc trên bên trái màn hình tại tọa độ (0, 0).

  • Nguồn gốc áp dụng cho các hàm tọa độ như drawLine, drawRectangle, drawCircle, và printAt.

  • Cài đặt ban đầu vẫn có hiệu lực cho đến khi được thay đổi hoặc dự án được thiết lập lại.

setClipRegion#

Xác định một vùng hình chữ nhật trên màn hình, nơi tất cả hình vẽ và văn bản sẽ được giới hạn. Bất kỳ nội dung nào nằm ngoài vùng này sẽ không được hiển thị.

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

Parameters

Tham số

Kiểu

Sự miêu tả

x

int

Tọa độ x của góc trên bên trái của vùng cắt, được biểu thị bằng một số nguyên từ 0 đến 159.

y

int

Tọa độ y của góc trên bên trái của vùng cắt, được biểu thị bằng một số nguyên từ 0 đến 107.

width

int

Chiều rộng của vùng cắt tính bằng pixel, được biểu thị dưới dạng số nguyên từ 0 đến 159.

height

int

Chiều cao của vùng cắt tính bằng pixel, được biểu thị dưới dạng số nguyên từ 0 đến 107.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Các chức năng vẽ vẫn được thực thi ngay cả khi chúng nằm ngoài vùng cắt, nhưng chỉ phần bên trong vùng đó mới hiển thị.

  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

  • Vùng cắt chỉ áp dụng cho luồng hiện tại.

  • Việc thiết lập vùng cắt mới sẽ thay thế bất kỳ vùng cắt nào đã được thiết lập trước đó cho chủ đề hiện tại.

Examples

drawPixel#

Vẽ một điểm ảnh trên màn hình EXP Brain tại vị trí điểm ảnh x và y đã chọn.

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

Parameters

Tham số

Kiểu

Sự miêu tả

x

int

Tọa độ x nơi điểm ảnh sẽ được vẽ, được biểu thị bằng một số nguyên từ 0 đến 159.

y

int

Tọa độ y nơi điểm ảnh sẽ được vẽ, được biểu thị bằng một số nguyên từ 0 đến 107.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Các pixel được vẽ bằng cách sử dụng màu bút hiện tại được đặt bằng setPenColor.

  • Tọa độ x và y là tương đối so với gốc màn hình hiện tại, có thể được thiết lập bằng cách sử dụng setOrigin.

  • Nếu vị trí pixel được chỉ định nằm ngoài phạm vi màn hình, pixel đó sẽ không được vẽ.

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

Ảnh chụp màn hình EXP Brain hiển thị một loạt các pixel thể hiện các góc của một hình vuông gần trung tâm màn hình.

drawLine#

Vẽ một đường thẳng nối hai điểm trên màn hình EXP Brain.

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

Parameters

Tham số

Kiểu

Sự miêu tả

x1

int

Tọa độ x ban đầu của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 159.

y1

int

Tọa độ y ban đầu của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 107.

x2

int

Tọa độ x cuối cùng của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 159.

y2

int

Tọa độ y cuối cùng của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 107.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Các đường được vẽ bằng cách sử dụng màu bút hiện tại được đặt bằng setPenColor.

  • Độ rộng của đường kẻ được xác định bởi độ rộng bút hiện tại được đặt bằng setPenWidth.

  • Tọa độ x và y là tương đối so với gốc màn hình hiện tại, có thể được thiết lập bằng cách sử dụng setOrigin.

  • Nếu bất kỳ phần nào của đường thẳng nằm ngoài phạm vi màn hình, chỉ phần hiển thị được mới được vẽ.

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

Ảnh chụp màn hình EXP Brain hiển thị một đường chéo mỏng ở giữa, từ góc trên bên trái đến góc dưới bên phải.

drawRectangle#

Vẽ một hình chữ nhật trên màn hình EXP Brain tại vị trí và kích thước đã chỉ định.

Available Functions

1 — Draws and fills a rectangle using the currently configured fill color.

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

2 — Vẽ và tô màu hình chữ nhật bằng cách sử dụng một đối tượng được xác định trước hoặc màu tùy chỉnh.

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

3 — Vẽ và tô màu hình chữ nhật bằng giá trị màu thập lục phân.

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

4 — Vẽ và tô màu hình chữ nhật bằng giá trị màu sắc.

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

Parameters

Tham số

Kiểu

Sự miêu tả

x

int

Tọa độ x của góc trên bên trái của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 159.

y

int

Tọa độ y của góc trên bên trái của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 107.

width

int

Chiều rộng của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 159.

height

int

Chiều cao của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 107.

color

const color&

Fills the rectangle 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*

Tô màu hình chữ nhật bằng giá trị màu thập lục phân (ví dụ: “#FF0000”).

hue

int

Tô màu hình chữ nhật bằng giá trị màu trong khoảng 0–359.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Đường viền hình chữ nhật được vẽ bằng cách sử dụng màu bút hiện tại được đặt bằng setPenColor.

  • Độ dày đường viền được xác định bởi độ rộng bút hiện tại được đặt bằng setPenWidth.

  • Khi không có tham số color được cung cấp, phần bên trong hình chữ nhật sẽ được tô bằng màu tô hiện tại được đặt bằng setFillColor.

  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

  • Nếu bất kỳ phần nào của hình chữ nhật nằm ngoài phạm vi màn hình, chỉ phần hiển thị được mới được vẽ.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

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

Ảnh chụp màn hình của EXP Brain hiển thị một hình chữ nhật có viền trắng mỏng ở góc trên bên trái.

drawCircle#

Vẽ một vòng tròn trên màn hình EXP Brain tại vị trí và bán kính đã chỉ định.

Available Functions

1 — Draws and fills a circle using the currently configured fill color.

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

2 — Vẽ và tô màu một hình tròn bằng cách sử dụng một đối tượng được xác định trước hoặc màu tùy chỉnh.

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

3 — Vẽ và tô màu một hình tròn bằng giá trị màu thập lục phân.

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

4 — Vẽ và tô màu một hình tròn bằng cách sử dụng giá trị màu sắc.

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

Parameters

Tham số

Kiểu

Sự miêu tả

x

int

Tọa độ x của tâm đường tròn, được biểu thị bằng một số nguyên từ 0 đến 159.

y

int

Tọa độ y của tâm đường tròn, được biểu thị bằng một số nguyên từ 0 đến 107.

radius

int

Bán kính của hình tròn, được biểu thị bằng một số nguyên từ 0 đến 107 pixel.

color

const color&

Tô đầy hình tròn bằng cách sử dụng đối tượng màu color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Điều này cũng có thể sử dụng đối tượng màu tùy chỉnh.

color

const char*

Tô màu hình tròn bằng giá trị màu thập lục phân (ví dụ: “#FF0000”).

hue

int

Tô màu hình tròn bằng giá trị màu trong khoảng 0–359.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Đường viền hình tròn được vẽ bằng cách sử dụng màu bút hiện tại được đặt bằng setPenColor.

  • Độ dày đường viền được xác định bởi độ rộng bút hiện tại được đặt bằng setPenWidth.

  • Khi không có tham số color được cung cấp, phần bên trong của vòng tròn sẽ được tô bằng màu tô hiện tại được đặt bằng setFillColor.

  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

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

Ảnh chụp màn hình EXP Brain hiển thị một vòng tròn có viền trắng mỏng ở giữa.

drawImageFromFile#

Vẽ một hình ảnh trên màn hình EXP Brain bằng cách sử dụng tệp hình ảnh được lưu trữ trên thẻ SD.

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

Parameters

Tham số

Kiểu

Sự miêu tả

name

const char*

Tên tệp hình ảnh trên thẻ SD. Tệp phải có phần mở rộng .bmp hoặc .png.

x

int

Tọa độ x, tính bằng pixel từ 0 đến 159, là vị trí mà cạnh trái của hình ảnh sẽ được vẽ.

y

int

Tọa độ y, tính bằng pixel từ 0 đến 107, là vị trí mà cạnh trên của hình ảnh sẽ được vẽ.

Return Values

Trả về giá trị Boolean cho biết hình ảnh có được hiển thị thành công hay không:

  • true — Hình ảnh đã được tải và hiển thị thành công trên màn hình.
  • false — Không thể hiển thị hình ảnh (ví dụ: nếu tệp không tồn tại hoặc không hợp lệ).

Notes
  • Các định dạng hình ảnh được hỗ trợ là .bmp và .png.

  • Kích thước tệp hình ảnh không được vượt quá 512 KB.

    • Nên sử dụng mã hóa RLE 8 bit để giảm thiểu kích thước tệp.

  • Kích thước hình ảnh tối đa được hỗ trợ là kích thước màn hình Brain (khoảng 159 x 107 pixel).

  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

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

render#

Cho phép sử dụng bộ đệm kép cho màn hình của Brain. Sau khi được gọi, bất kỳ chức năng vẽ nào (như văn bản, hình dạng hoặc hình ảnh) sẽ không còn hiển thị ngay lập tức trong suốt phần còn lại của dự án. Thay vào đó, các cập nhật sẽ chỉ được hiển thị khi lệnh render được sử dụng lại. Điều này cho phép cập nhật màn hình mượt mà và được kiểm soát tốt hơn, nhưng có nghĩa là sẽ không có gì hiển thị cho đến khi lệnh render được sử dụng.

Available Functions

1 — Cho phép đệm kép hoặc hiển thị bộ đệm phía sau lên màn hình.

bool render();

2 — Hiển thị bộ đệm phía sau lên màn hình với khả năng điều khiển hành vi đồng bộ dọc và thực thi bộ lập lịch tùy chọn.

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

Parameters

Tham số

Kiểu

Sự miêu tả

bVsyncWait

bool

​

  • true — Chờ màn hình làm mới theo chiều dọc trước khi hiển thị để giảm hiện tượng xé hình.
  • false — Không chờ màn hình làm mới theo chiều dọc trước khi hiển thị.

bRunScheduler

bool

Tùy chọn.

  • true (mặc định) — Cho phép các tác vụ nền chạy trong khi chờ hiển thị.
  • false — Không cho phép các tác vụ nền chạy trong khi chờ hiển thị.

Return Values

Trả về giá trị Boolean cho biết liệu các bản vẽ đã lưu trong bộ đệm có được hiển thị thành công trên màn hình hay không:

  • true — Các bản vẽ đã được hiển thị thành công trên màn hình.
  • false — Các bản vẽ không thể được hiển thị trên màn hình.
  • Notes
    • Việc gọi lệnh render sẽ yêu cầu sử dụng lệnh render cho phần còn lại của dự án.

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