หน้าจอ#

การแนะนำ#

คลาส screen ได้รับมาจากคลาสพื้นฐาน brain โดยจะควบคุมวิธีการที่ V5 Brain แสดงข้อความ ตัวเลข และกราฟิกบนหน้าจอสัมผัส และวิธีการตอบสนองต่ออินพุตแบบสัมผัส

โดยค่าเริ่มต้น ฟอนต์ที่ใช้ในการพิมพ์ไปยัง Brain คือ monospaced small ซึ่งมี 12 แถวและ 48 คอลัมน์

สำหรับการวาดภาพ ความละเอียดของสมองจำลองนี้อยู่ที่ 480 x 240 พิกเซล

หน้าจอ V5 Brain แสดงเส้นตารางสีแดงที่มีเค้าโครง 12 แถวและ 48 คอลัมน์ โดยมีขนาดพิกเซลกว้าง 479 พิกเซล สูง 239 พิกเซล มุมบนซ้ายเริ่มต้นที่ (0,0) พิกเซล แถวที่ 1 คอลัมน์ที่ 1 และมุมล่างขวาสิ้นสุดที่ (479, 239) พิกเซล แถวที่ 12 คอลัมน์ที่ 48

เข้าถึง#

สามารถเข้าถึงคลาส screen ได้โดย:

Brain.Screen

หมายเหตุ#

  • วัตถุ screen นั้นถูกสร้างขึ้นโดยสมอง ไม่ได้ถูกสร้างขึ้นโดยตรง

  • โปรเจกต์ใช้วัตถุ Brain ทั่วโลกเพียงตัวเดียว ดังนั้นฟังก์ชันหน้าจอจึงถูกเรียกใช้โดยใช้ Brain.Screen

ตัวอย่าง#

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

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

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

ฟังก์ชันสมาชิก#

คลาส screen ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:

  • print — พิมพ์ข้อความ ตัวเลข หรือค่าบูลีนที่จัดรูปแบบแล้วลงบนหน้าจอ Brain

  • setCursor — ย้ายเคอร์เซอร์ข้อความไปยังแถวและคอลัมน์ที่ระบุ

  • newLine — ล้างส่วนที่เหลือของบรรทัดปัจจุบันและย้ายเคอร์เซอร์ไปยังบรรทัดถัดไป

  • clearLine — ล้างส่วนที่เหลือของบรรทัดปัจจุบันหรือล้างบรรทัดที่ระบุ

  • row — ส่งคืนแถวที่จะพิมพ์ข้อความ

  • column — ส่งคืนคอลัมน์ที่จะพิมพ์ข้อความ

  • getStringHeight — ส่งคืนความสูงของสตริงเป็นพิกเซลโดยใช้ฟอนต์ปัจจุบัน

  • getStringWidth — ส่งคืนความกว้างของสตริงเป็นพิกเซลโดยใช้ฟอนต์ปัจจุบัน

  • printAt — พิมพ์ข้อความที่จัดรูปแบบไว้ที่ตำแหน่งพิกเซล x, y

  • clearScreen — ล้างภาพวาดและข้อความทั้งหมดออกจากหน้าจอ Brain

  • setFont — ตั้งค่าแบบอักษรที่ใช้สำหรับการพิมพ์บนหน้าจอ

  • setPenWidth — กำหนดความหนาของเส้นที่วาดและเส้นขอบของรูปร่าง

  • setPenColor — ตั้งค่าสีของข้อความ พิกเซล เส้น และเส้นขอบของรูปร่าง

  • setFillColor — กำหนดสีเติมสำหรับรูปทรงที่วาดและพื้นหลังข้อความที่พิมพ์

  • setOrigin — กำหนดจุดกำเนิดที่ใช้สำหรับพิกัดหน้าจอ

  • setClipRegion — จำกัดการแสดงผลบนหน้าจอให้อยู่ในพื้นที่สี่เหลี่ยมผืนผ้า

  • drawPixel — วาดพิกเซลหนึ่งพิกเซลที่พิกัด

  • drawLine — วาดเส้นระหว่างสองจุด

  • drawRectangle — วาดสี่เหลี่ยมผืนผ้าที่ตำแหน่ง x, y ด้วยขนาดที่ระบุ

  • drawCircle — วาดวงกลมที่ตำแหน่ง x, y ด้วยรัศมีที่กำหนด

  • drawImageFromFile — วาดภาพจากไฟล์การ์ด SD ลงบนหน้าจอ

  • render — เปิดใช้งานการบัฟเฟอร์คู่หรือเรนเดอร์บัฟเฟอร์ด้านหลังไปยังหน้าจอ

  • pressing — ส่งคืนว่าหน้าจอกำลังถูกกดอยู่หรือไม่

  • xPosition — ส่งคืนพิกัด x ของการกดหน้าจอครั้งล่าสุด

  • yPosition — ส่งคืนพิกัด y ของการกดหน้าจอครั้งล่าสุด

  • pressed — ลงทะเบียนฟังก์ชันเรียกกลับเพื่อเรียกใช้เมื่อกดหน้าจอ

  • released — ลงทะเบียนฟังก์ชันเรียกกลับเพื่อเรียกใช้เมื่อปล่อยหน้าจอหลังจากกด

ก่อนเรียกใช้ฟังก์ชันสมาชิก screen ใดๆ จะต้องสร้างอินสแตนซ์ brain ก่อน ดังแสดงด้านล่าง:

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

print#

แสดงข้อความ ตัวเลข หรือค่าบูลีนบนหน้าจอ V5 Brain

Available Functions

1 — พิมพ์ข้อความที่จัดรูปแบบโดยใช้สตริงลิเทอรัลหรือสตริงแบบอ่านอย่างเดียวสไตล์ C

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

2 — พิมพ์ข้อความที่จัดรูปแบบโดยใช้ชุดอักขระที่สามารถแก้ไขได้

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

format

const char*

สตริงรูปแบบที่ระบุเป็นสตริงตัวอักษรหรือสตริงแบบอ่านอย่างเดียวสไตล์ C (ตัวอย่างเช่น “Score: %d”)

format

char*

สตริงรูปแบบที่ให้มาในรูปแบบอาร์เรย์อักขระที่สามารถแก้ไขได้

…

ค่าเพิ่มเติมอย่างน้อยหนึ่งค่าที่แทรกเข้าไปในสตริงรูปแบบ โดยคั่นด้วยเครื่องหมายจุลภาค

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • Output begins at the current cursor position on the screen.

  • ข้อความที่พิมพ์ใช้แบบอักษรปัจจุบันบนหน้าจอ

  • ข้อความที่พิมพ์ใช้สีปากกาปัจจุบัน

  • ข้อความที่พิมพ์ด้วยการพิมพ์ print จะพิมพ์โดยมีพื้นหลังเสมอ และสีพื้นหลังจะถูกกำหนดโดยสีเติมปัจจุบัน

  • เมื่อใช้สตริงรูปแบบ จำนวนและประเภทของค่าที่ส่งผ่านจะต้องตรงกับ ตัวระบุรูปแบบ ในสตริง

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

ภาพหน้าจอของ V5 Brain แสดงข้อความ Hello, Robot! พิมพ์อยู่มุมบนซ้ายของหน้าจอด้วยตัวอักษรสีขาว

setCursor#

ย้ายเคอร์เซอร์ไปยังแถวและคอลัมน์ที่ระบุบนหน้าจอ V5 Brain การเรียก print ครั้งถัดไปจะเริ่มพิมพ์ที่ตำแหน่งนั้น

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

row

int32_t

แถวที่จะย้ายเคอร์เซอร์ไป

col

int32_t

คอลัมน์ที่จะย้ายเคอร์เซอร์ไป

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • ส่งผลต่อตำแหน่งที่ข้อความเอาต์พุตถัดไปเริ่มต้นเมื่อใช้ print

  • แถวและคอลัมน์จะอิงตาม แบบอักษรหน้าจอที่ตั้งค่าไว้ในปัจจุบัน

  • แบบอักษรเริ่มต้น (mono20) ใช้ 12 แถวและ 48 คอลัมน์

  • การเรียกใช้ setCursor จะส่งผลต่อตำแหน่งของข้อความที่แสดงผลถัดไปเท่านั้น

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

ภาพหน้าจอของ V5 Brain แสดงแถวที่ 3 คอลัมน์ที่ 12 พิมพ์ในส่วนบนใกล้กึ่งกลางหน้าจอ ณ ตำแหน่งนั้น

newLine#

ย้ายเคอร์เซอร์ไปที่ต้นแถวถัดไปบนหน้าจอ Brain

Available Functions
void newLine();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • หากเคอร์เซอร์อยู่กลางประโยค คำสั่ง newLine จะล้างส่วนที่เหลือของแถวหลังเคอร์เซอร์ก่อนที่จะย้ายไปยังแถวถัดไป

  • หลังจากเรียก newLineแล้ว เคอร์เซอร์จะถูกวางไว้ที่คอลัมน์แรกของบรรทัดถัดไป

  • ตำแหน่งเคอร์เซอร์และการกำหนดหมายเลขแถวจะถูกตั้งค่าโดยใช้ setCursor

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

ภาพหน้าจอของโปรแกรม V5 Brain แสดงข้อความสีขาวสองบรรทัดที่มุมบนซ้าย บรรทัดบนสุดเขียนว่า บรรทัดที่ 1 และบรรทัดที่สองด้านล่างเขียนว่า บรรทัดที่ 2

clearLine#

ลบข้อความออกจากแถวบนหน้าจอ V5 Brain

Available Functions

1 — ล้างส่วนที่เหลือของบรรทัดปัจจุบันจากตำแหน่งเคอร์เซอร์

void clearLine();

2 — ล้างแถวที่ระบุโดยใช้ สีเติม ที่กำหนดค่าไว้ในปัจจุบัน

void clearLine(
    int number );

3 — ล้างแถวที่ระบุโดยใช้สีที่กำหนดไว้ล่วงหน้าหรือวัตถุ สีที่กำหนดเอง

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

4 — ล้างแถวที่ระบุโดยใช้ค่าสีเลขฐานสิบหก

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

5 — ล้างแถวที่ระบุโดยใช้ค่าสี

void clearLine(
    int number,
    int hue );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

number

int

หมายเลขแถวที่จะล้าง การกำหนดหมายเลขแถวเริ่มต้นที่ 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*

ล้างแถวโดยใช้ค่าสีฐานสิบหก (ตัวอย่างเช่น “#000000”)

hue

int

ล้างแถวโดยใช้ค่าเฉดสีที่เป็นจำนวนเต็มในช่วง 0–359ซึ่งแสดงถึงองศาต่างๆ รอบวงล้อสี

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • การล้างบรรทัดจะไม่เปลี่ยนแปลงตำแหน่งเคอร์เซอร์ปัจจุบัน

  • ตำแหน่งเคอร์เซอร์และการกำหนดหมายเลขแถวจะถูกตั้งค่าโดยใช้ setCursor

  • ค่าพารามิเตอร์ hue นั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

วงล้อสีแสดงช่วงสีตั้งแต่ 0 ถึง 359 โดยที่สีแดงคือ 0 สีเขียวคือ 120 และสีน้ำเงินคือ 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#

ส่งคืนแถวที่ข้อความจะถูกพิมพ์บนหน้าจอ V5 Brain

Available Functions
int32_t row();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่า int32_t ซึ่งแสดงถึงแถวที่จะพิมพ์ข้อความ

การกำหนดหมายเลขแถวเริ่มต้นที่หมายเลข 1

Notes
  • ตำแหน่งเคอร์เซอร์จะอิงตามแบบอักษรหน้าจอปัจจุบัน

  • ค่าที่ส่งกลับมาจะระบุตำแหน่งที่ผลลัพธ์การพิมพ์ครั้งต่อไปจะปรากฏ

  • ค่าแถวจะเปลี่ยนแปลงเมื่อมีการพิมพ์ข้อความหรือเมื่อมีการเรียกใช้ setCursor

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

ภาพหน้าจอของโปรแกรม V5 Brain แสดงข้อความ 3 สีขาวในส่วนบนซ้ายของหน้าจอ ที่ตำแหน่งแถวที่ 3 คอลัมน์ที่ 12

column#

ส่งคืนคอลัมน์ที่ข้อความจะถูกพิมพ์บนหน้าจอ V5 Brain

Available Functions
int32_t column();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่า int32_t ซึ่งแสดงถึงคอลัมน์ที่จะพิมพ์ข้อความ

การกำหนดหมายเลขคอลัมน์เริ่มต้นที่หมายเลข 1

Notes
  • ตำแหน่งเคอร์เซอร์จะอิงตามแบบอักษรหน้าจอปัจจุบัน

  • ค่าที่ส่งกลับมาจะระบุตำแหน่งที่ผลลัพธ์การพิมพ์ครั้งต่อไปจะปรากฏ

  • ค่าคอลัมน์จะเปลี่ยนแปลงเมื่อมีการพิมพ์ข้อความหรือเมื่อมีการเรียกใช้ setCursor

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

ภาพหน้าจอของโปรแกรม V5 Brain แสดงตัวเลข 15 สีขาวในส่วนบนซ้ายของหน้าจอ ที่ตำแหน่งแถวที่ 3 คอลัมน์ที่ 15

getStringHeight#

ฟังก์ชันนี้จะส่งคืนความสูงของข้อความ (หน่วยเป็นพิกเซล) เมื่อแสดงผลบนหน้าจอ V5 Brain

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

cstr

const char*

ข้อความที่จะวัด ระบุเป็น สตริงแบบ C (ตัวอย่างเช่น “Hello”)

Return Values

ส่งคืนค่า int32_t ซึ่งแสดงถึงความสูงของสตริงในหน่วยพิกเซลเมื่อแสดงผลบนหน้าจอ Brain

Notes
  • ความสูงที่ส่งคืนขึ้นอยู่กับแบบอักษรหน้าจอที่เลือกในปัจจุบัน

  • ฟังก์ชันนี้จะวัดความยาวของสตริงโดยไม่ต้องแสดงผลบนหน้าจอ

  • ค่าความสูงที่ส่งกลับมาจะแสดงให้เห็นว่าข้อความนั้นจะปรากฏอย่างไรเมื่อพิมพ์ออกมา

getStringWidth#

ฟังก์ชันนี้จะส่งคืนความกว้างของข้อความ (หน่วยเป็นพิกเซล) เมื่อแสดงผลบนหน้าจอ V5 Brain

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

cstr

const char*

ข้อความที่จะวัด ระบุเป็น สตริงแบบ C (ตัวอย่างเช่น “Hello”)

Return Values

ส่งคืนค่า int32_t ซึ่งแสดงถึงความกว้างของสตริงในหน่วยพิกเซลเมื่อแสดงผลบนหน้าจอ Brain

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

  • ฟังก์ชันนี้จะวัดความยาวของสตริงโดยไม่ต้องแสดงผลบนหน้าจอ

  • ค่าความกว้างที่ส่งคืนจะสะท้อนถึงลักษณะที่ข้อความจะปรากฏเมื่อพิมพ์ออกมา

printAt#

พิมพ์ข้อความ ตัวเลข หรือค่าบูลีน ณ ตำแหน่งพิกัดที่กำหนดบนหน้าจอ V5 Brain

Available Functions

1 — พิมพ์ผลลัพธ์ที่จัดรูปแบบแล้ว ณ ตำแหน่งพิกเซลที่ระบุ

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

2 — พิมพ์ผลลัพธ์ที่จัดรูปแบบแล้ว ณ ตำแหน่งพิกเซลที่ระบุ และตั้งค่าว่าพื้นหลังของข้อความจะเป็นแบบทึบหรือโปร่งใส

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int32_t

ตำแหน่ง x ที่จะพิมพ์ โดยอ้างอิงจากจุดกำเนิดของหน้าจอ

y

int32_t

ตำแหน่งแกน y ที่จะใช้ในการพิมพ์ โดยอ้างอิงจากจุดกำเนิดของหน้าจอ

bOpaque

bool

ควบคุมว่าข้อความที่พิมพ์จะถูกวาดแบบทึบแสงหรือโปร่งใส:

  • true — พื้นหลังของข้อความที่พิมพ์จะถูกเติมด้วย สีเติมปัจจุบัน
  • false — ข้อความจะถูกวาดแบบโปร่งใสและพื้นหลังจะไม่ถูกเติม

format

const char*

สตริงรูปแบบที่ควบคุมสิ่งที่แสดงบนหน้าจอ (ตัวอย่างเช่น “Score: %d”)

…

ค่าเพิ่มเติมอย่างน้อยหนึ่งค่าที่แทรกเข้าไปในสตริงรูปแบบ โดยคั่นด้วยเครื่องหมายจุลภาค

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • พิกัด x และ y สัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ setOrigin

  • ข้อความที่พิมพ์ใช้แบบอักษรปัจจุบันบนหน้าจอ

  • ข้อความที่พิมพ์ใช้สีปากกาปัจจุบัน

  • เมื่อใช้สตริงรูปแบบ จำนวนและประเภทของค่าที่ส่งผ่านจะต้องตรงกับ ตัวระบุรูปแบบ ในสตริง

Examples
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

ภาพหน้าจอของโปรแกรม V5 Brain ที่มีข้อความสีขาวเขียนว่า Center อยู่ตรงกลางหน้าจอ

clearScreen#

ลบภาพวาดและข้อความทั้งหมดออกจากหน้าจอ Brain และรีเซ็ตตำแหน่งเคอร์เซอร์ไปที่แถวที่ 1 คอลัมน์ที่ 1

Available Functions

1 — ล้างหน้าจอให้เป็นสีดำ

void clearScreen();

2 — ล้างหน้าจอโดยใช้วัตถุที่กำหนดไว้ล่วงหน้าหรือ สีที่กำหนดเอง

void clearScreen(
    const color& color );

3 — ล้างหน้าจอโดยใช้ค่าสีเลขฐานสิบหก

void clearScreen(
    const char* color );

4 — ล้างหน้าจอโดยใช้ค่าเฉดสี

void clearScreen(
    int hue );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

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*

ล้างหน้าจอโดยใช้ค่าสีเลขฐานสิบหกที่แสดงเป็นสตริง (ตัวอย่างเช่น “#000000”)

hue

int

ล้างหน้าจอโดยใช้ค่าเฉดสีจำนวนเต็มในช่วง 0–359ซึ่งแสดงถึงองศาต่างๆ รอบวงล้อสี

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • ค่าพารามิเตอร์ hue นั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

วงล้อสีแสดงช่วงสีตั้งแต่ 0 ถึง 359 โดยที่สีแดงคือ 0 สีเขียวคือ 120 และสีน้ำเงินคือ 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);

ภาพหน้าจอของโปรแกรม V5 Brain โดยพื้นที่พิมพ์ทั้งหมดเป็นสีฟ้าสดใส

setFont#

ตั้งค่าแบบอักษรที่ใช้สำหรับข้อความที่แสดงบนหน้าจอ V5 Brain

สิ่งนี้จะควบคุมแบบอักษรที่ใช้กับข้อความเอาต์พุตถัดไปเมื่อใช้ฟังก์ชันข้อความหน้าจอ เช่น print

Available Functions
void setFont(
  fontType font );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

font

fontType

Sets the font to one of the following:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Can print Chinese, Japanese, and Korean characters.
    • Simplified Chinese — Can be seen up to column 28.
    • Traditional Chinese — Can be seen up to column 28.
    • Japanese (Kanji) — Can be seen up to column 28.
    • Korean (Hangul) — Can be seen up to column 30.
These options are shown below.

ภาพหน้าจอ TA ของหน้าจอ V5 Brain ที่มีตัวเลขและตัวอักษรพิมพ์สีขาวอยู่ที่มุมบนซ้ายด้วยฟอนต์ MONO 12 แสดง AZ ในบรรทัดเดียว ครอบคลุมความกว้างประมาณหนึ่งในสี่ของหน้าจอ ที่มุมล่างซ้ายมีข้อความว่า 80 คอลัมน์และ 20 แถว
mono12

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Mono 15 แสดงตัวอักษร AZ ในบรรทัดเดียว ครอบคลุมเกือบครึ่งความกว้างของหน้าจอ ที่มุมล่างซ้ายมีข้อความว่า 68 คอลัมน์และ 16 แถว
mono15

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Mono 20 แสดงตัวอักษร AZ ในบรรทัดเดียว ครอบคลุมเกือบสองในสามของความกว้างหน้าจอ ที่มุมล่างซ้ายมีข้อความว่า 48 คอลัมน์และ 12 แถว
mono20

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Mono 30 แสดงตัวอักษร AZ ในบรรทัดเดียว เกือบเต็มความกว้างของหน้าจอ มุมล่างซ้ายมีข้อความว่า 32 คอลัมน์และ 8 แถว
mono30

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Mono 40 แสดงตัวอักษร AX ในบรรทัดเดียว ครอบคลุมความกว้างของหน้าจอ มุมล่างซ้ายมีข้อความว่า 24 คอลัมน์และ 6 แถว
mono40

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Mono 60 แสดง AP ในบรรทัดเดียว ครอบคลุมความกว้างของหน้าจอ ด้านล่างระบุ 16 คอลัมน์และ 4 แถว
mono60

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Prop 20 แสดง AZ ในบรรทัดเดียว ครอบคลุมเกือบสองในสามของความกว้างหน้าจอ ที่มุมล่างซ้ายมีข้อความว่า 48 คอลัมน์และ 12 แถว
prop20

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Prop 30 แสดง AZ ในบรรทัดเดียว เกือบเต็มความกว้างของหน้าจอ มุมล่างซ้ายมีข้อความว่า 32 คอลัมน์และ 8 แถว
prop30

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Prop 40 แสดงคำว่า AU ในบรรทัดเดียว ครอบคลุมความกว้างของหน้าจอ ที่มุมล่างซ้ายมีข้อความว่า 24 คอลัมน์และ 6 แถว
prop40

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Prop 60 แสดงคำว่า AN ในบรรทัดเดียว ครอบคลุมความกว้างของหน้าจอ ด้านล่างมีข้อความว่า 15 คอลัมน์และ 4 แถว
prop60

ภาพเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ CJK 16 แสดง AZ ในบรรทัดเดียว ครอบคลุมพื้นที่ประมาณสองในสามของหน้าจอ บรรทัดถัดไปแสดง VEXcode เป็นภาษาจีนตัวย่อ จีนตัวเต็ม เกาหลี และญี่ปุ่น ด้านล่างแสดง 43 คอลัมน์และ 12 แถว
fontType::cjk16

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

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

ภาพหน้าจอของ V5 Brain ที่แสดงข้อความสีขาวที่อ่านว่า VEX ด้วยแบบอักษรที่ใหญ่กว่าค่าเริ่มต้น ในมุมบนซ้าย


// Print in Chinese
Brain.Screen.setFont(fontType::cjk16);
Brain.Screen.print("VEX机器人");

ภาพหน้าจอ V5 Brain แสดงข้อความ "VEX机器人" เป็นภาษาจีนที่มุมบนซ้าย

setPenWidth#

กำหนดความหนาของเส้นที่วาดและเส้นขอบของรูปทรง

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

width

uint32_t

ความกว้างของปากกา (หน่วยเป็นพิกเซล) มีค่าตั้งแต่ 0 ถึง 32

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • ความกว้างของปากกาใช้กับฟังก์ชันการวาด เช่น drawLine, drawRectangle และ drawCircle

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

ภาพหน้าจอของโปรแกรม V5 Brain แสดงรูปสี่เหลี่ยมผืนผ้าที่มีเส้นขอบหนาพิมพ์อยู่ในช่องบนซ้ายของหน้าจอ

setPenColor#

กำหนดสีของข้อความ พิกเซล เส้น และเส้นขอบของรูปทรง

Available Functions

1 — ตั้งค่าสีปากกาโดยใช้วัตถุที่กำหนดไว้ล่วงหน้าหรือ สีที่กำหนดเอง

void setPenColor(
    const color& color );

2 — กำหนดสีปากกาโดยใช้ค่าสีเลขฐานสิบหก

void setPenColor(
    const char* color );

3 — กำหนดสีปากกาโดยใช้ค่าเฉดสี

void setPenColor(
    int hue );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

color

const color&

กำหนดสีปากกาโดยใช้ออบเจ็กต์สี color สีที่กำหนดไว้ล่วงหน้า ได้แก่:

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

color

const char*

ตั้งค่าสีปากกาโดยใช้ค่าสีเลขฐานสิบหกที่แสดงเป็นสตริง (ตัวอย่างเช่น “#FF0000”)

hue

int

กำหนดสีของปากกาโดยใช้ค่าเฉดสีที่เป็นจำนวนเต็มในช่วง 0–359ซึ่งแสดงถึงองศาต่างๆ รอบวงล้อสี (ตัวอย่างเช่น 0 คือสีแดง 120 คือสีเขียว และ 240 คือสีน้ำเงิน)

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • สีปากกาเริ่มต้นเมื่อเริ่มโปรเจ็กต์คือสีขาว white

  • สีของปากกาใช้สำหรับวาดเส้นขอบของรูปร่าง (เช่น ด้วย drawCircle หรือ drawRectangle), ข้อความและผลลัพธ์ตัวเลข (ด้วย print และ printAt) และพิกเซลแต่ละพิกเซลที่วาดด้วย drawPixel

  • ค่าพารามิเตอร์ hue นั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

วงล้อสีแสดงช่วงสีตั้งแต่ 0 ถึง 359 โดยที่สีแดงคือ 0 สีเขียวคือ 120 และสีน้ำเงินคือ 240

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

ภาพหน้าจอของโปรแกรม V5 Brain แสดงสี่เหลี่ยมผืนผ้าสีส้มที่วาดไว้ในช่องบนซ้ายของหน้าจอ

setFillColor#

กำหนดสีเติมที่จะใช้เมื่อวาดรูปทรง

Available Functions

1 — กำหนดสีเติมโดยใช้ออบเจ็กต์ที่กำหนดไว้ล่วงหน้าหรือ สีที่กำหนดเอง

void setFillColor(
    const color& color );

2 — กำหนดสีเติมโดยใช้ค่าสีฐานสิบหก

void setFillColor(
    const char* color );

3__ — กำหนดสีเติมโดยใช้ค่าเฉดสี

void setFillColor(
    int hue );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

color

const color&

กำหนดสีเติมโดยใช้ออบเจ็กต์สี color สีที่กำหนดไว้ล่วงหน้า ได้แก่:

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

color

const char*

ตั้งค่าสีเติมโดยใช้ค่าสีฐานสิบหกที่แสดงเป็นสตริง (ตัวอย่างเช่น “#00FF00”)

hue

int

กำหนดสีเติมโดยใช้ค่าเฉดสีที่เป็นจำนวนเต็มในช่วง 0–359ซึ่งแสดงถึงองศาต่างๆ รอบวงล้อสี (ตัวอย่างเช่น 0 คือสีแดง 120 คือสีเขียว และ 240 คือสีน้ำเงิน)

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • สีเติมเริ่มต้นเมื่อเริ่มโปรเจ็กต์คือ black

  • สีเติมใช้สำหรับส่วนภายในของรูปทรง (เช่นเดียวกับ drawCircle หรือ drawRectangle)

  • สีเติมจะใช้เป็นสีพื้นหลังสำหรับข้อความที่พิมพ์ (เช่นเดียวกับ print และ printAt)

    • ถ้าใช้ transparent กับข้อความที่พิมพ์ พื้นหลังจะเป็น black

  • ค่าพารามิเตอร์ hue นั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

วงล้อสีแสดงช่วงสีตั้งแต่ 0 ถึง 359 โดยที่สีแดงคือ 0 สีเขียวคือ 120 และสีน้ำเงินคือ 240

Examples
// Draw a rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(50, 100, 130, 60);

ภาพหน้าจอของโปรแกรม V5 Brain แสดงสี่เหลี่ยมผืนผ้าที่เต็มไปด้วยสีม่วงในส่วนล่างซ้ายของหน้าจอ

setOrigin#

กำหนดจุดกำเนิดที่ใช้สำหรับการวาดและการพิมพ์แบบอิงพิกัดบนหน้าจอ Brain

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int32_t

ตำแหน่งแกน x ของจุดกำเนิดเมื่อเทียบกับมุมบนซ้ายของหน้าจอ Brain มีค่าตั้งแต่ 0 ถึง 479

y

int32_t

ตำแหน่งแกน y ของจุดกำเนิดเมื่อเทียบกับมุมบนซ้ายของหน้าจอ Brain มีค่าตั้งแต่ 0 ถึง 239

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • จุดกำเนิดเริ่มต้นคือมุมบนซ้ายของหน้าจอที่พิกัด (0, 0)

  • จุดกำเนิดนี้ใช้กับฟังก์ชันพิกัด เช่น drawLine, drawRectangle, drawCircle, และ printAt

  • ค่าเริ่มต้นจะมีผลจนกว่าจะมีการเปลี่ยนแปลงอีกครั้งหรือมีการรีเซ็ตโปรเจกต์

setClipRegion#

กำหนดพื้นที่สี่เหลี่ยมผืนผ้าบนหน้าจอซึ่งจะจำกัดภาพวาดและข้อความทั้งหมดไว้ เนื้อหาใดๆ ที่อยู่นอกพื้นที่นี้จะไม่แสดงผล

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int

พิกัด x ของมุมบนซ้ายของบริเวณที่ตัดออก ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479

y

int

พิกัด y ของมุมบนซ้ายของบริเวณที่ตัดออก ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239

width

int

ความกว้างของบริเวณที่ตัดในหน่วยพิกเซล โดยระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479

height

int

ความสูงของบริเวณที่ตัดในหน่วยพิกเซล โดยระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • ฟังก์ชันการวาดภาพจะยังคงทำงานต่อไปแม้ว่าส่วนที่อยู่นอกขอบเขตการตัด แต่จะมองเห็นได้เฉพาะส่วนที่อยู่ภายในขอบเขตเท่านั้น

  • พิกัด x และ y สัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ setOrigin

  • ขอบเขตการหนีบใช้ได้เฉพาะกับเธรดปัจจุบันเท่านั้น

  • การกำหนดขอบเขตการตัดใหม่จะแทนที่ขอบเขตการตัดที่ตั้งไว้ก่อนหน้านี้สำหรับกระทู้ปัจจุบัน

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

ภาพหน้าจอของ V5 Brain ที่มีข้อความสีขาวเขียนว่า Cut of พร้อมกรอบสี่เหลี่ยมสีแดงทึบอยู่ด้านล่างในส่วนบนซ้าย ซึ่งแสดงสิ่งที่พิมพ์อยู่ภายในบริเวณที่ตัดออก

drawPixel#

วาดพิกเซลหนึ่งจุดบนหน้าจอ V5 Brain ณ ตำแหน่งพิกเซล x และ y ที่เลือกไว้

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int

พิกัด x ที่จะใช้ในการวาดพิกเซล โดยระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479

y

int

พิกัด y ที่จะใช้ในการวาดพิกเซล โดยระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • พิกเซลจะถูกวาดโดยใช้สีปากกาปัจจุบันที่ตั้งไว้ด้วย setPenColor

  • พิกัด x และ y สัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถตั้งค่าได้โดยใช้ setOrigin

  • หากตำแหน่งพิกเซลที่ระบุอยู่นอกขอบเขตของหน้าจอ พิกเซลนั้นจะไม่ถูกวาด

Examples
// Draw the pixels marking the corners of a square
Brain.Screen.drawPixel(250, 100);
Brain.Screen.drawPixel(275, 100);
Brain.Screen.drawPixel(250, 125);
Brain.Screen.drawPixel(275, 125);

ภาพหน้าจอของ V5 Brain ที่แสดงพิกเซลหลากหลายที่แสดงมุมของสี่เหลี่ยมจัตุรัสใกล้กับกึ่งกลางหน้าจอ

drawLine#

ลากเส้นตรงเชื่อมจุดสองจุดบนหน้าจอ V5 Brain

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x1

int

พิกัด x เริ่มต้นของเส้นตรง ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479

y1

int

พิกัด y เริ่มต้นของเส้นตรง ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239

x2

int

พิกัด x สุดท้ายของเส้นตรง ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479

y2

int

พิกัด y สุดท้ายของเส้นตรง ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • เส้นจะถูกวาดโดยใช้สีปากกาปัจจุบันที่ตั้งไว้ด้วย setPenColor

  • ความกว้างของเส้นจะถูกกำหนดโดยความกว้างของปากกาปัจจุบันที่ตั้งไว้ด้วย setPenWidth

  • พิกัด x และ y สัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถตั้งค่าได้โดยใช้ setOrigin

  • หากส่วนใดส่วนหนึ่งของเส้นอยู่นอกขอบเขตหน้าจอ จะวาดเฉพาะส่วนที่มองเห็นได้เท่านั้น

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

ภาพหน้าจอของโปรแกรม V5 Brain แสดงเส้นทแยงมุมบาง ๆ ลากผ่านตรงกลาง จากมุมบนซ้ายไปยังมุมล่างขวา

drawRectangle#

วาดรูปสี่เหลี่ยมผืนผ้าบนหน้าจอ V5 Brain ณ ตำแหน่งและขนาดที่กำหนด

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 — Draws and fills a rectangle using a predefined or custom color object.

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

3 — วาดและเติมสีสี่เหลี่ยมผืนผ้าโดยใช้ค่าสีเลขฐานสิบหก

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

4 — วาดและเติมสีลงในสี่เหลี่ยมผืนผ้าโดยใช้ค่าสี (hue value)

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int

พิกัด x ของมุมบนซ้ายของสี่เหลี่ยมผืนผ้า ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479

y

int

พิกัด y ของมุมบนซ้ายของสี่เหลี่ยมผืนผ้า ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239

width

int

ความกว้างของสี่เหลี่ยมผืนผ้า ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479

height

int

ความสูงของสี่เหลี่ยมผืนผ้า กำหนดเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239

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*

เติมสีลงในสี่เหลี่ยมผืนผ้าโดยใช้ค่าสีเลขฐานสิบหก (ตัวอย่างเช่น “#FF0000”)

hue

int

เติมสีลงในสี่เหลี่ยมผืนผ้าโดยใช้ค่าเฉดสีในช่วง 0–359

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • เส้นขอบสี่เหลี่ยมจะถูกวาดโดยใช้สีปากกาปัจจุบันที่ตั้งค่าด้วย setPenColor

  • ความหนาของเส้นขอบจะถูกกำหนดโดยความกว้างของปากกาปัจจุบันที่ตั้งไว้ด้วย setPenWidth

  • เมื่อไม่มีการระบุพารามิเตอร์สี color ภายในสี่เหลี่ยมจะถูกเติมโดยใช้สีเติมปัจจุบันที่ตั้งไว้ด้วย setFillColor

  • พิกัด x และ y สัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ setOrigin

  • หากส่วนใดส่วนหนึ่งของสี่เหลี่ยมผืนผ้าอยู่นอกขอบเขตหน้าจอ จะวาดเฉพาะส่วนที่มองเห็นได้เท่านั้น

  • ค่าพารามิเตอร์ hue นั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

วงล้อสีแสดงช่วงสีตั้งแต่ 0 ถึง 359 โดยที่สีแดงคือ 0 สีเขียวคือ 120 และสีน้ำเงินคือ 240

Examples
// Draw a rectangle on the screen
Brain.Screen.drawRectangle(50, 50, 130, 60);

ภาพหน้าจอของ V5 Brain แสดงรูปสี่เหลี่ยมผืนผ้าที่มีขอบสีขาวบาง ๆ พิมพ์อยู่ในช่องด้านบนซ้าย

drawCircle#

วาดวงกลมบนหน้าจอ V5 Brain ณ ตำแหน่งและรัศมีที่กำหนด

Available Functions

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

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

2 — Draws and fills a circle using a predefined or custom color object.

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

3 — วาดและเติมสีวงกลมโดยใช้ค่าสีเลขฐานสิบหก

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

4 — วาดและเติมสีวงกลมโดยใช้ค่าเฉดสี

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int

พิกัด x ของจุดศูนย์กลางของวงกลม ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479

y

int

พิกัด y ของจุดศูนย์กลางของวงกลม ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239

radius

int

รัศมีของวงกลม ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 พิกเซล

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*

เติมสีลงในวงกลมโดยใช้ค่าสีเลขฐานสิบหก (ตัวอย่างเช่น “#FF0000”)

hue

int

เติมสีลงในวงกลมโดยใช้ค่าเฉดสีในช่วง 0–359

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • เส้นขอบวงกลมถูกวาดโดยใช้สีปากกาปัจจุบันที่ตั้งค่าด้วย setPenColor

  • ความหนาของเส้นขอบจะถูกกำหนดโดยความกว้างของปากกาปัจจุบันที่ตั้งไว้ด้วย setPenWidth

  • เมื่อไม่มีการระบุพารามิเตอร์สี color ภายในวงกลมจะถูกเติมโดยใช้สีเติมปัจจุบันที่ตั้งไว้ด้วย setFillColor

  • พิกัด x และ y สัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ setOrigin

  • ค่าพารามิเตอร์ hue นั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

วงล้อสีแสดงช่วงสีตั้งแต่ 0 ถึง 359 โดยที่สีแดงคือ 0 สีเขียวคือ 120 และสีน้ำเงินคือ 240

Examples
// Draw a circle on the screen
Brain.Screen.drawCircle(240, 120, 40);

ภาพหน้าจอของ V5 Brain แสดงวงกลมที่มีเส้นขอบสีขาวบางๆ วาดอยู่ตรงกลาง

drawImageFromFile#

วาดภาพบนหน้าจอ V5 Brain โดยใช้ไฟล์ภาพที่จัดเก็บไว้ใน การ์ด SD

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

name

const char*

ชื่อไฟล์ของรูปภาพบนการ์ด SD ไฟล์ต้องมีนามสกุล .bmp หรือ .png

x

int

พิกัด x ในหน่วยพิกเซล ตั้งแต่ 0 ถึง 479 ซึ่งเป็นตำแหน่งที่ขอบด้านซ้ายของภาพจะถูกวาด

y

int

พิกัด y ในหน่วยพิกเซล ตั้งแต่ 0 ถึง 239 ซึ่งเป็นตำแหน่งที่ขอบบนของภาพจะถูกวาด

Return Values

ส่งคืนค่าบูลีนที่ระบุว่าภาพถูกวาดสำเร็จหรือไม่:

  • true — โหลดภาพและวาดลงบนหน้าจอสำเร็จ
  • false — ไม่สามารถวาดภาพได้ (เช่น ไฟล์ไม่มีอยู่หรือไม่ถูกต้อง)

Notes
  • รูปแบบภาพที่รองรับได้แก่ .bmp และ .png

  • ขนาดไฟล์ภาพต้องไม่เกิน 512 KB

    • แนะนำให้ใช้การเข้ารหัส RLE 8 บิต เพื่อลดขนาดไฟล์ให้เหลือน้อยที่สุด

  • ขนาดภาพสูงสุดที่รองรับคือขนาดหน้าจอของโปรแกรม Brain (ประมาณ 479 x 239 พิกเซล)

  • พิกัด x และ y สัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ setOrigin

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

render#

เปิดใช้งานการบัฟเฟอร์คู่สำหรับหน้าจอของ Brain เมื่อเรียกใช้แล้ว ฟังก์ชันการวาดใดๆ (เช่น ข้อความ รูปร่าง หรือรูปภาพ) จะไม่ปรากฏขึ้นทันทีในส่วนที่เหลือของโปรเจ็กต์อีกต่อไป แต่การอัปเดตจะแสดงขึ้นก็ต่อเมื่อใช้คำสั่ง render อีกครั้งเท่านั้น ซึ่งจะช่วยให้การอัปเดตหน้าจอราบรื่นและควบคุมได้ดียิ่งขึ้น แต่หมายความว่าจะไม่มีอะไรปรากฏให้เห็นจนกว่าจะใช้คำสั่ง render

Available Functions

1 — เปิดใช้งานการบัฟเฟอร์คู่ หรือแสดงผลบัฟเฟอร์ด้านหลังไปยังหน้าจอ

bool render();

2 — แสดงผลบัฟเฟอร์ด้านหลังไปยังหน้าจอ พร้อมควบคุมพฤติกรรมการซิงค์แนวตั้ง และการเรียกใช้ตัวกำหนดเวลา (ถ้ามี)

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

bVsyncWait

bool

​

  • true — รอให้หน้าจอรีเฟรชแนวตั้งก่อนแสดงผลเพื่อลดปัญหาภาพฉีกขาด
  • false — ไม่ต้องรอให้หน้าจอรีเฟรชแนวตั้งก่อนแสดงผล

bRunScheduler

bool

ตัวเลือกเสริม

  • true (ค่าเริ่มต้น) — อนุญาตให้งานเบื้องหลังทำงานในขณะที่รอการเรนเดอร์
  • false — ไม่อนุญาตให้งานเบื้องหลังทำงานในขณะที่รอการเรนเดอร์

Return Values

ส่งคืนค่าบูลีนที่ระบุว่าภาพวาดที่บันทึกไว้ในบัฟเฟอร์แสดงผลบนหน้าจอสำเร็จหรือไม่:

  • true — ภาพวาดแสดงผลบนหน้าจอสำเร็จ
  • false — ภาพวาดไม่สามารถแสดงผลบนหน้าจอได้
  • Notes
    • การเรียกใช้คำสั่ง render render จะต้องใช้คำสั่ง render render สำหรับส่วนที่เหลือของโปรเจ็กต์

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

pressing#

รายงานว่าขณะนี้มีการกดหน้าจอ V5 Brain อยู่หรือไม่

Available Functions
bool pressing();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่าบูลีนที่ระบุสถานะการกดหน้าจอในปัจจุบัน:true — หน้าจอกำลังถูกกดอยู่ หรือ false — หน้าจอไม่ได้ถูกกด

Examples
// Change the screen's color after it's pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.setFillColor(green);
Brain.Screen.drawRectangle(0, 0, 479, 239);


// Display different messages after the screen is pressed
while (!Brain.Screen.pressing()) {
  wait(5, msec);
}
Brain.Screen.print("First message!");
Brain.Screen.newLine();

// Lift finger to press the screen again
while (Brain.Screen.pressing()) {
  wait(5, msec);
}
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}
Brain.Screen.print("Second message!");
Brain.Screen.newLine();

xPosition#

ส่งคืนค่าพิกัด x ของการกดครั้งล่าสุดบนหน้าจอ V5 Brain

Available Functions
int32_t xPosition();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่า int32_t ซึ่งแสดงพิกัด x ในหน่วยพิกเซลตั้งแต่ 0 ถึง 479 ของการกดหน้าจอครั้งล่าสุด

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

yPosition#

ส่งคืนค่าพิกัด y ของการกดครั้งล่าสุดบนหน้าจอ V5 Brain

Available Functions
int32_t yPosition();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่า int32_t ซึ่งแสดงค่าพิกัด y ในหน่วยพิกเซล ตั้งแต่ 0 ถึง 239 ของการกดหน้าจอครั้งล่าสุด

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

pressed#

ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อกดหน้าจอ V5 Brain

Available Functions

1 — เรียกใช้ฟังก์ชันเมื่อกดที่หน้าจอ

void pressed(
    void (*callback)(void)
);

2 — เรียกฟังก์ชันเมื่อกดที่หน้าจอ และส่งอาร์กิวเมนต์ที่ผู้ใช้กำหนดไปยังฟังก์ชันเรียกกลับ

void pressed(
    void (*callback)(void*),
    void* arg );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

ฟังก์ชันที่จะถูกเรียกใช้เมื่อกดที่หน้าจอ

callback

void ()(void)

ฟังก์ชันที่จะถูกเรียกเมื่อกดที่หน้าจอและรับค่าพารามิเตอร์ที่ผู้ใช้กำหนด

arg

void*

ค่าที่ผู้ใช้กำหนดเอง ซึ่งจะถูกส่งไปยังฟังก์ชันเรียกกลับเมื่อกดที่หน้าจอ

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • ฟังก์ชันเรียกกลับ (callback function) จะถูกเรียกใช้งานทุกครั้งที่กดหน้าจอ Brain

  • สามารถลงทะเบียนฟังก์ชันเรียกกลับได้ครั้งละหนึ่งฟังก์ชันเท่านั้น การเรียก pressed อีกครั้งจะแทนที่ฟังก์ชันเรียกกลับก่อนหน้า

  • ฟังก์ชันเรียกกลับต้องส่งคืนค่า void

Examples

กำหนดฟังก์ชันเรียกกลับ (นอก int main())

// Tracks how many times the screen is pressed.
void onScreenPressed(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Pressed %d times", *count);
}

ลงทะเบียนฟังก์ชันเรียกกลับภายใน int main()

int main() {
  int pressCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.pressed(onScreenPressed, &pressCount);

  while (true) {
    wait(20, msec);
  }
}

released#

ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อปล่อยหน้าจอ V5 Brain หลังจากกดแล้ว

Available Functions

1 — เรียกฟังก์ชันเมื่อปล่อยหน้าจอหลังจากกด

void released(
    void (*callback)(void)
);

2 — เรียกฟังก์ชันเมื่อปล่อยหน้าจอหลังจากกด และส่งอาร์กิวเมนต์ที่ผู้ใช้กำหนดไปยังฟังก์ชันเรียกกลับ

void released(
    void (*callback)(void*),
    void* arg );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

ฟังก์ชันที่จะถูกเรียกเมื่อปล่อยหน้าจอหลังจากกดค้างไว้

callback

void ()(void)

ฟังก์ชันที่จะถูกเรียกเมื่อปล่อยหน้าจอหลังจากถูกกด และรับค่าพารามิเตอร์ที่ผู้ใช้กำหนด

arg

void*

ค่าที่ผู้ใช้กำหนดเอง ซึ่งจะถูกส่งไปยังฟังก์ชันเรียกกลับเมื่อปล่อยหน้าจอหลังจากถูกกด

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • ฟังก์ชันเรียกกลับ (callback function) จะถูกเรียกใช้งานทุกครั้งที่ปล่อยหน้าจอ Brain หลังจากถูกกด

  • สามารถลงทะเบียนฟังก์ชันเรียกกลับได้ครั้งละหนึ่งฟังก์ชันเท่านั้น การเรียก released อีกครั้งจะแทนที่ฟังก์ชันเรียกกลับก่อนหน้า

  • ฟังก์ชันเรียกกลับต้องส่งคืนค่า void

Examples

กำหนดฟังก์ชันเรียกกลับ (นอก int main())

// Tracks how many times the screen is released.
void onScreenReleased(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Released %d times", *count);
}

ลงทะเบียนฟังก์ชันเรียกกลับภายใน int main()

int main() {
  int releaseCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.released(onScreenReleased, &releaseCount);

  while (true) {
    wait(20, msec);
  }
}