หน้าจอ#
การแนะนำ#
คลาส screen ได้รับมาจากคลาสพื้นฐาน brain โดยจะควบคุมวิธีการที่ V5 Brain แสดงข้อความ ตัวเลข และกราฟิกบนหน้าจอสัมผัส และวิธีการตอบสนองต่ออินพุตแบบสัมผัส
โดยค่าเริ่มต้น ฟอนต์ที่ใช้ในการพิมพ์ไปยัง Brain คือ monospaced small ซึ่งมี 12 แถวและ 48 คอลัมน์
สำหรับการวาดภาพ ความละเอียดของสมองจำลองนี้อยู่ที่ 480 x 240 พิกเซล

เข้าถึง#
สามารถเข้าถึงคลาส 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— พิมพ์ข้อความ ตัวเลข หรือค่าบูลีนที่จัดรูปแบบแล้วลงบนหน้าจอ BrainsetCursor— ย้ายเคอร์เซอร์ข้อความไปยังแถวและคอลัมน์ที่ระบุnewLine— ล้างส่วนที่เหลือของบรรทัดปัจจุบันและย้ายเคอร์เซอร์ไปยังบรรทัดถัดไปclearLine— ล้างส่วนที่เหลือของบรรทัดปัจจุบันหรือล้างบรรทัดที่ระบุrow— ส่งคืนแถวที่จะพิมพ์ข้อความcolumn— ส่งคืนคอลัมน์ที่จะพิมพ์ข้อความgetStringHeight— ส่งคืนความสูงของสตริงเป็นพิกเซลโดยใช้ฟอนต์ปัจจุบันgetStringWidth— ส่งคืนความกว้างของสตริงเป็นพิกเซลโดยใช้ฟอนต์ปัจจุบันprintAt— พิมพ์ข้อความที่จัดรูปแบบไว้ที่ตำแหน่งพิกเซล x, yclearScreen— ล้างภาพวาดและข้อความทั้งหมดออกจากหน้าจอ BrainsetFont— ตั้งค่าแบบอักษรที่ใช้สำหรับการพิมพ์บนหน้าจอ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 Functions1 — พิมพ์ข้อความที่จัดรูปแบบโดยใช้สตริงลิเทอรัลหรือสตริงแบบอ่านอย่างเดียวสไตล์ C
void print( const char* format, ... );
Parameters2 — พิมพ์ข้อความที่จัดรูปแบบโดยใช้ชุดอักขระที่สามารถแก้ไขได้
void print( char* format, ... );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
สตริงรูปแบบที่ระบุเป็นสตริงตัวอักษรหรือสตริงแบบอ่านอย่างเดียวสไตล์ C (ตัวอย่างเช่น |
|
|
สตริงรูปแบบที่ให้มาในรูปแบบอาร์เรย์อักขระที่สามารถแก้ไขได้ |
|
ค่าเพิ่มเติมอย่างน้อยหนึ่งค่าที่แทรกเข้าไปในสตริงรูปแบบ โดยคั่นด้วยเครื่องหมายจุลภาค |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
NotesOutput begins at the current cursor position on the screen.
ข้อความที่พิมพ์ด้วยการพิมพ์
printจะพิมพ์โดยมีพื้นหลังเสมอ และสีพื้นหลังจะถูกกำหนดโดยสีเติมปัจจุบันเมื่อใช้สตริงรูปแบบ จำนวนและประเภทของค่าที่ส่งผ่านจะต้องตรงกับ ตัวระบุรูปแบบ ในสตริง
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");

setCursor#
ย้ายเคอร์เซอร์ไปยังแถวและคอลัมน์ที่ระบุบนหน้าจอ V5 Brain การเรียก print ครั้งถัดไปจะเริ่มพิมพ์ที่ตำแหน่งนั้น
void setCursor(
int32_t row,
int32_t col );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
แถวที่จะย้ายเคอร์เซอร์ไป |
|
|
คอลัมน์ที่จะย้ายเคอร์เซอร์ไป |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesส่งผลต่อตำแหน่งที่ข้อความเอาต์พุตถัดไปเริ่มต้นเมื่อใช้
printแถวและคอลัมน์จะอิงตาม แบบอักษรหน้าจอที่ตั้งค่าไว้ในปัจจุบัน
แบบอักษรเริ่มต้น (
mono20) ใช้ 12 แถวและ 48 คอลัมน์การเรียกใช้
setCursorจะส่งผลต่อตำแหน่งของข้อความที่แสดงผลถัดไปเท่านั้น
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

newLine#
ย้ายเคอร์เซอร์ไปที่ต้นแถวถัดไปบนหน้าจอ Brain
Available Functionsvoid newLine();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesหากเคอร์เซอร์อยู่กลางประโยค คำสั่ง
newLineจะล้างส่วนที่เหลือของแถวหลังเคอร์เซอร์ก่อนที่จะย้ายไปยังแถวถัดไปหลังจากเรียก
newLineแล้ว เคอร์เซอร์จะถูกวางไว้ที่คอลัมน์แรกของบรรทัดถัดไปตำแหน่งเคอร์เซอร์และการกำหนดหมายเลขแถวจะถูกตั้งค่าโดยใช้
setCursor
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

clearLine#
ลบข้อความออกจากแถวบนหน้าจอ V5 Brain
Available Functions1 — ล้างส่วนที่เหลือของบรรทัดปัจจุบันจากตำแหน่งเคอร์เซอร์
void clearLine();
2 — ล้างแถวที่ระบุโดยใช้ สีเติม ที่กำหนดค่าไว้ในปัจจุบัน
void clearLine( int number );
3 — ล้างแถวที่ระบุโดยใช้สีที่กำหนดไว้ล่วงหน้าหรือวัตถุ สีที่กำหนดเอง
void clearLine( int number, const color& color );
4 — ล้างแถวที่ระบุโดยใช้ค่าสีเลขฐานสิบหก
void clearLine( int number, const char* color );
Parameters5 — ล้างแถวที่ระบุโดยใช้ค่าสี
void clearLine( int number, int hue );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หมายเลขแถวที่จะล้าง การกำหนดหมายเลขแถวเริ่มต้นที่ |
|
|
Clears the row using a
|
|
|
ล้างแถวโดยใช้ค่าสีฐานสิบหก (ตัวอย่างเช่น |
|
|
ล้างแถวโดยใช้ค่าเฉดสีที่เป็นจำนวนเต็มในช่วง |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesการล้างบรรทัดจะไม่เปลี่ยนแปลงตำแหน่งเคอร์เซอร์ปัจจุบัน
ตำแหน่งเคอร์เซอร์และการกำหนดหมายเลขแถวจะถูกตั้งค่าโดยใช้
setCursorค่าพารามิเตอร์
hueนั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

// 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 Functionsint32_t row();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่า int32_t ซึ่งแสดงถึงแถวที่จะพิมพ์ข้อความ
การกำหนดหมายเลขแถวเริ่มต้นที่หมายเลข 1
Notesค่าที่ส่งกลับมาจะระบุตำแหน่งที่ผลลัพธ์การพิมพ์ครั้งต่อไปจะปรากฏ
ค่าแถวจะเปลี่ยนแปลงเมื่อมีการพิมพ์ข้อความหรือเมื่อมีการเรียกใช้
setCursor
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print(Brain.Screen.row());

column#
ส่งคืนคอลัมน์ที่ข้อความจะถูกพิมพ์บนหน้าจอ V5 Brain
Available Functionsint32_t column();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่า int32_t ซึ่งแสดงถึงคอลัมน์ที่จะพิมพ์ข้อความ
การกำหนดหมายเลขคอลัมน์เริ่มต้นที่หมายเลข 1
Notesค่าที่ส่งกลับมาจะระบุตำแหน่งที่ผลลัพธ์การพิมพ์ครั้งต่อไปจะปรากฏ
ค่าคอลัมน์จะเปลี่ยนแปลงเมื่อมีการพิมพ์ข้อความหรือเมื่อมีการเรียกใช้
setCursor
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

getStringHeight#
ฟังก์ชันนี้จะส่งคืนความสูงของข้อความ (หน่วยเป็นพิกเซล) เมื่อแสดงผลบนหน้าจอ V5 Brain
Available Functionsint32_t getStringHeight(
const char* cstr );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ข้อความที่จะวัด ระบุเป็น สตริงแบบ C (ตัวอย่างเช่น |
ส่งคืนค่า int32_t ซึ่งแสดงถึงความสูงของสตริงในหน่วยพิกเซลเมื่อแสดงผลบนหน้าจอ Brain
getStringWidth#
ฟังก์ชันนี้จะส่งคืนความกว้างของข้อความ (หน่วยเป็นพิกเซล) เมื่อแสดงผลบนหน้าจอ V5 Brain
Available Functionsint32_t getStringWidth(
const char* cstr );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ข้อความที่จะวัด ระบุเป็น สตริงแบบ C (ตัวอย่างเช่น |
ส่งคืนค่า int32_t ซึ่งแสดงถึงความกว้างของสตริงในหน่วยพิกเซลเมื่อแสดงผลบนหน้าจอ Brain
The returned width depends on the currently selected screen font.
ฟังก์ชันนี้จะวัดความยาวของสตริงโดยไม่ต้องแสดงผลบนหน้าจอ
ค่าความกว้างที่ส่งคืนจะสะท้อนถึงลักษณะที่ข้อความจะปรากฏเมื่อพิมพ์ออกมา
printAt#
พิมพ์ข้อความ ตัวเลข หรือค่าบูลีน ณ ตำแหน่งพิกัดที่กำหนดบนหน้าจอ V5 Brain
Available Functions1 — พิมพ์ผลลัพธ์ที่จัดรูปแบบแล้ว ณ ตำแหน่งพิกเซลที่ระบุ
void printAt( int32_t x, int32_t y, const char* format, ... );
Parameters2 — พิมพ์ผลลัพธ์ที่จัดรูปแบบแล้ว ณ ตำแหน่งพิกเซลที่ระบุ และตั้งค่าว่าพื้นหลังของข้อความจะเป็นแบบทึบหรือโปร่งใส
void printAt( int32_t x, int32_t y, bool bOpaque, const char* format, ... );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ตำแหน่ง x ที่จะพิมพ์ โดยอ้างอิงจากจุดกำเนิดของหน้าจอ |
|
|
ตำแหน่งแกน y ที่จะใช้ในการพิมพ์ โดยอ้างอิงจากจุดกำเนิดของหน้าจอ |
|
|
ควบคุมว่าข้อความที่พิมพ์จะถูกวาดแบบทึบแสงหรือโปร่งใส:
|
|
|
สตริงรูปแบบที่ควบคุมสิ่งที่แสดงบนหน้าจอ (ตัวอย่างเช่น |
|
ค่าเพิ่มเติมอย่างน้อยหนึ่งค่าที่แทรกเข้าไปในสตริงรูปแบบ โดยคั่นด้วยเครื่องหมายจุลภาค |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesพิกัด
xและyสัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้setOriginเมื่อใช้สตริงรูปแบบ จำนวนและประเภทของค่าที่ส่งผ่านจะต้องตรงกับ ตัวระบุรูปแบบ ในสตริง
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

clearScreen#
ลบภาพวาดและข้อความทั้งหมดออกจากหน้าจอ Brain และรีเซ็ตตำแหน่งเคอร์เซอร์ไปที่แถวที่ 1 คอลัมน์ที่ 1
Available Functions1 — ล้างหน้าจอให้เป็นสีดำ
void clearScreen();
2 — ล้างหน้าจอโดยใช้วัตถุที่กำหนดไว้ล่วงหน้าหรือ สีที่กำหนดเอง
void clearScreen( const color& color );
3 — ล้างหน้าจอโดยใช้ค่าสีเลขฐานสิบหก
void clearScreen( const char* color );
Parameters4 — ล้างหน้าจอโดยใช้ค่าเฉดสี
void clearScreen( int hue );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
Clears the screen using a
|
|
|
ล้างหน้าจอโดยใช้ค่าสีเลขฐานสิบหกที่แสดงเป็นสตริง (ตัวอย่างเช่น |
|
|
ล้างหน้าจอโดยใช้ค่าเฉดสีจำนวนเต็มในช่วง |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesค่าพารามิเตอร์
hueนั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

// 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#
ตั้งค่าแบบอักษรที่ใช้สำหรับข้อความที่แสดงบนหน้าจอ V5 Brain
สิ่งนี้จะควบคุมแบบอักษรที่ใช้กับข้อความเอาต์พุตถัดไปเมื่อใช้ฟังก์ชันข้อความหน้าจอ เช่น print
void setFont(
fontType font );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
Sets the font to one of the following:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Examples// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

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

setPenWidth#
กำหนดความหนาของเส้นที่วาดและเส้นขอบของรูปทรง
Available Functionsvoid setPenWidth(
uint32_t width );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ความกว้างของปากกา (หน่วยเป็นพิกเซล) มีค่าตั้งแต่ 0 ถึง 32 |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesความกว้างของปากกาใช้กับฟังก์ชันการวาด เช่น
drawLine,drawRectangleและdrawCircle
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

setPenColor#
กำหนดสีของข้อความ พิกเซล เส้น และเส้นขอบของรูปทรง
Available Functions1 — ตั้งค่าสีปากกาโดยใช้วัตถุที่กำหนดไว้ล่วงหน้าหรือ สีที่กำหนดเอง
void setPenColor( const color& color );
2 — กำหนดสีปากกาโดยใช้ค่าสีเลขฐานสิบหก
void setPenColor( const char* color );
Parameters3 — กำหนดสีปากกาโดยใช้ค่าเฉดสี
void setPenColor( int hue );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
กำหนดสีปากกาโดยใช้ออบเจ็กต์สี
|
|
|
ตั้งค่าสีปากกาโดยใช้ค่าสีเลขฐานสิบหกที่แสดงเป็นสตริง (ตัวอย่างเช่น |
|
|
กำหนดสีของปากกาโดยใช้ค่าเฉดสีที่เป็นจำนวนเต็มในช่วง |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesสีปากกาเริ่มต้นเมื่อเริ่มโปรเจ็กต์คือสีขาว
whiteสีของปากกาใช้สำหรับวาดเส้นขอบของรูปร่าง (เช่น ด้วย
drawCircleหรือdrawRectangle), ข้อความและผลลัพธ์ตัวเลข (ด้วยprintและprintAt) และพิกเซลแต่ละพิกเซลที่วาดด้วยdrawPixelค่าพารามิเตอร์
hueนั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

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

setFillColor#
กำหนดสีเติมที่จะใช้เมื่อวาดรูปทรง
Available Functions1 — กำหนดสีเติมโดยใช้ออบเจ็กต์ที่กำหนดไว้ล่วงหน้าหรือ สีที่กำหนดเอง
void setFillColor( const color& color );
2 — กำหนดสีเติมโดยใช้ค่าสีฐานสิบหก
void setFillColor( const char* color );
Parameters3__ — กำหนดสีเติมโดยใช้ค่าเฉดสี
void setFillColor( int hue );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
กำหนดสีเติมโดยใช้ออบเจ็กต์สี
|
|
|
ตั้งค่าสีเติมโดยใช้ค่าสีฐานสิบหกที่แสดงเป็นสตริง (ตัวอย่างเช่น |
|
|
กำหนดสีเติมโดยใช้ค่าเฉดสีที่เป็นจำนวนเต็มในช่วง |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesสีเติมเริ่มต้นเมื่อเริ่มโปรเจ็กต์คือ
blackสีเติมใช้สำหรับส่วนภายในของรูปทรง (เช่นเดียวกับ
drawCircleหรือdrawRectangle)สีเติมจะใช้เป็นสีพื้นหลังสำหรับข้อความที่พิมพ์ (เช่นเดียวกับ
printและprintAt)ถ้าใช้
transparentกับข้อความที่พิมพ์ พื้นหลังจะเป็นblack
ค่าพารามิเตอร์
hueนั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

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

setOrigin#
กำหนดจุดกำเนิดที่ใช้สำหรับการวาดและการพิมพ์แบบอิงพิกัดบนหน้าจอ Brain
Available Functionsvoid setOrigin(
int32_t x,
int32_t y );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ตำแหน่งแกน x ของจุดกำเนิดเมื่อเทียบกับมุมบนซ้ายของหน้าจอ Brain มีค่าตั้งแต่ 0 ถึง 479 |
|
|
ตำแหน่งแกน y ของจุดกำเนิดเมื่อเทียบกับมุมบนซ้ายของหน้าจอ Brain มีค่าตั้งแต่ 0 ถึง 239 |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesจุดกำเนิดเริ่มต้นคือมุมบนซ้ายของหน้าจอที่พิกัด (0, 0)
จุดกำเนิดนี้ใช้กับฟังก์ชันพิกัด เช่น
drawLine,drawRectangle,drawCircle, และprintAtค่าเริ่มต้นจะมีผลจนกว่าจะมีการเปลี่ยนแปลงอีกครั้งหรือมีการรีเซ็ตโปรเจกต์
setClipRegion#
กำหนดพื้นที่สี่เหลี่ยมผืนผ้าบนหน้าจอซึ่งจะจำกัดภาพวาดและข้อความทั้งหมดไว้ เนื้อหาใดๆ ที่อยู่นอกพื้นที่นี้จะไม่แสดงผล
Available Functionsvoid setClipRegion(
int x,
int y,
int width,
int height );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
พิกัด x ของมุมบนซ้ายของบริเวณที่ตัดออก ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479 |
|
|
พิกัด y ของมุมบนซ้ายของบริเวณที่ตัดออก ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 |
|
|
ความกว้างของบริเวณที่ตัดในหน่วยพิกเซล โดยระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479 |
|
|
ความสูงของบริเวณที่ตัดในหน่วยพิกเซล โดยระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesฟังก์ชันการวาดภาพจะยังคงทำงานต่อไปแม้ว่าส่วนที่อยู่นอกขอบเขตการตัด แต่จะมองเห็นได้เฉพาะส่วนที่อยู่ภายในขอบเขตเท่านั้น
พิกัด
xและyสัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้setOriginขอบเขตการหนีบใช้ได้เฉพาะกับเธรดปัจจุบันเท่านั้น
การกำหนดขอบเขตการตัดใหม่จะแทนที่ขอบเขตการตัดที่ตั้งไว้ก่อนหน้านี้สำหรับกระทู้ปัจจุบัน
// 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!");

drawPixel#
วาดพิกเซลหนึ่งจุดบนหน้าจอ V5 Brain ณ ตำแหน่งพิกเซล x และ y ที่เลือกไว้
Available Functionsvoid drawPixel(
int x,
int y );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
พิกัด x ที่จะใช้ในการวาดพิกเซล โดยระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479 |
|
|
พิกัด y ที่จะใช้ในการวาดพิกเซล โดยระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesพิกเซลจะถูกวาดโดยใช้สีปากกาปัจจุบันที่ตั้งไว้ด้วย
setPenColorพิกัด
xและyสัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถตั้งค่าได้โดยใช้setOriginหากตำแหน่งพิกเซลที่ระบุอยู่นอกขอบเขตของหน้าจอ พิกเซลนั้นจะไม่ถูกวาด
// 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);
![]()
drawLine#
ลากเส้นตรงเชื่อมจุดสองจุดบนหน้าจอ V5 Brain
Available Functionsvoid drawLine(
int x1,
int y1,
int x2,
int y2 );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
พิกัด x เริ่มต้นของเส้นตรง ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479 |
|
|
พิกัด y เริ่มต้นของเส้นตรง ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 |
|
|
พิกัด x สุดท้ายของเส้นตรง ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479 |
|
|
พิกัด y สุดท้ายของเส้นตรง ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesเส้นจะถูกวาดโดยใช้สีปากกาปัจจุบันที่ตั้งไว้ด้วย
setPenColorความกว้างของเส้นจะถูกกำหนดโดยความกว้างของปากกาปัจจุบันที่ตั้งไว้ด้วย
setPenWidthพิกัด
xและyสัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถตั้งค่าได้โดยใช้setOriginหากส่วนใดส่วนหนึ่งของเส้นอยู่นอกขอบเขตหน้าจอ จะวาดเฉพาะส่วนที่มองเห็นได้เท่านั้น
// Draw a line from the top left to bottom right of the screen
Brain.Screen.drawLine(0, 0, 479, 239);

drawRectangle#
วาดรูปสี่เหลี่ยมผืนผ้าบนหน้าจอ V5 Brain ณ ตำแหน่งและขนาดที่กำหนด
Available Functions1 — 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 );
Parameters4 — วาดและเติมสีลงในสี่เหลี่ยมผืนผ้าโดยใช้ค่าสี (hue value)
void drawRectangle( int x, int y, int width, int height, int hue );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
พิกัด x ของมุมบนซ้ายของสี่เหลี่ยมผืนผ้า ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479 |
|
|
พิกัด y ของมุมบนซ้ายของสี่เหลี่ยมผืนผ้า ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 |
|
|
ความกว้างของสี่เหลี่ยมผืนผ้า ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479 |
|
|
ความสูงของสี่เหลี่ยมผืนผ้า กำหนดเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 |
|
|
Fills the rectangle using a
|
|
|
เติมสีลงในสี่เหลี่ยมผืนผ้าโดยใช้ค่าสีเลขฐานสิบหก (ตัวอย่างเช่น |
|
|
เติมสีลงในสี่เหลี่ยมผืนผ้าโดยใช้ค่าเฉดสีในช่วง |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesเส้นขอบสี่เหลี่ยมจะถูกวาดโดยใช้สีปากกาปัจจุบันที่ตั้งค่าด้วย
setPenColorความหนาของเส้นขอบจะถูกกำหนดโดยความกว้างของปากกาปัจจุบันที่ตั้งไว้ด้วย
setPenWidthเมื่อไม่มีการระบุพารามิเตอร์สี
colorภายในสี่เหลี่ยมจะถูกเติมโดยใช้สีเติมปัจจุบันที่ตั้งไว้ด้วยsetFillColorพิกัด
xและyสัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้setOriginหากส่วนใดส่วนหนึ่งของสี่เหลี่ยมผืนผ้าอยู่นอกขอบเขตหน้าจอ จะวาดเฉพาะส่วนที่มองเห็นได้เท่านั้น
ค่าพารามิเตอร์
hueนั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

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

drawCircle#
วาดวงกลมบนหน้าจอ V5 Brain ณ ตำแหน่งและรัศมีที่กำหนด
Available Functions1 — 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 );
Parameters4 — วาดและเติมสีวงกลมโดยใช้ค่าเฉดสี
void drawCircle( int x, int y, int radius, int hue );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
พิกัด x ของจุดศูนย์กลางของวงกลม ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 479 |
|
|
พิกัด y ของจุดศูนย์กลางของวงกลม ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 |
|
|
รัศมีของวงกลม ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 239 พิกเซล |
|
|
Fills the circle using a
|
|
|
เติมสีลงในวงกลมโดยใช้ค่าสีเลขฐานสิบหก (ตัวอย่างเช่น |
|
|
เติมสีลงในวงกลมโดยใช้ค่าเฉดสีในช่วง |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesเส้นขอบวงกลมถูกวาดโดยใช้สีปากกาปัจจุบันที่ตั้งค่าด้วย
setPenColorความหนาของเส้นขอบจะถูกกำหนดโดยความกว้างของปากกาปัจจุบันที่ตั้งไว้ด้วย
setPenWidthเมื่อไม่มีการระบุพารามิเตอร์สี
colorภายในวงกลมจะถูกเติมโดยใช้สีเติมปัจจุบันที่ตั้งไว้ด้วยsetFillColorพิกัด
xและyสัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้setOriginค่าพารามิเตอร์
hueนั้นอิงตามวงล้อสีแบบวงกลม ดังแสดงในภาพด้านล่าง โดยค่าต่างๆ แสดงถึงองศารอบวงล้อ (ตัวอย่างเช่น สีแดงอยู่ใกล้ 0° สีเขียวอยู่ใกล้ 120° และสีน้ำเงินอยู่ใกล้ 240°)

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

drawImageFromFile#
วาดภาพบนหน้าจอ V5 Brain โดยใช้ไฟล์ภาพที่จัดเก็บไว้ใน การ์ด SD
Available Functionsbool drawImageFromFile(
const char* name,
int x,
int y );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ชื่อไฟล์ของรูปภาพบนการ์ด SD ไฟล์ต้องมีนามสกุล |
|
|
พิกัด x ในหน่วยพิกเซล ตั้งแต่ 0 ถึง 479 ซึ่งเป็นตำแหน่งที่ขอบด้านซ้ายของภาพจะถูกวาด |
|
|
พิกัด y ในหน่วยพิกเซล ตั้งแต่ 0 ถึง 239 ซึ่งเป็นตำแหน่งที่ขอบบนของภาพจะถูกวาด |
ส่งคืนค่าบูลีนที่ระบุว่าภาพถูกวาดสำเร็จหรือไม่:
true— โหลดภาพและวาดลงบนหน้าจอสำเร็จfalse— ไม่สามารถวาดภาพได้ (เช่น ไฟล์ไม่มีอยู่หรือไม่ถูกต้อง)
รูปแบบภาพที่รองรับได้แก่
.bmpและ.pngขนาดไฟล์ภาพต้องไม่เกิน
512 KBแนะนำให้ใช้การเข้ารหัส RLE 8 บิต เพื่อลดขนาดไฟล์ให้เหลือน้อยที่สุด
ขนาดภาพสูงสุดที่รองรับคือขนาดหน้าจอของโปรแกรม Brain (ประมาณ 479 x 239 พิกเซล)
พิกัด
xและyสัมพันธ์กับจุดกำเนิดหน้าจอปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้setOrigin
// 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
1 — เปิดใช้งานการบัฟเฟอร์คู่ หรือแสดงผลบัฟเฟอร์ด้านหลังไปยังหน้าจอ
bool render();
Parameters2 — แสดงผลบัฟเฟอร์ด้านหลังไปยังหน้าจอ พร้อมควบคุมพฤติกรรมการซิงค์แนวตั้ง และการเรียกใช้ตัวกำหนดเวลา (ถ้ามี)
bool render( bool bVsyncWait, bool bRunScheduler = true );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
|
|
|
ตัวเลือกเสริม
|
ส่งคืนค่าบูลีนที่ระบุว่าภาพวาดที่บันทึกไว้ในบัฟเฟอร์แสดงผลบนหน้าจอสำเร็จหรือไม่:
true— ภาพวาดแสดงผลบนหน้าจอสำเร็จfalse— ภาพวาดไม่สามารถแสดงผลบนหน้าจอได้
Notes
การเรียกใช้คำสั่ง render
renderจะต้องใช้คำสั่ง renderrenderสำหรับส่วนที่เหลือของโปรเจ็กต์
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 Functionsbool pressing();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่าบูลีนที่ระบุสถานะการกดหน้าจอในปัจจุบัน:true — หน้าจอกำลังถูกกดอยู่ หรือ false — หน้าจอไม่ได้ถูกกด
// 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 Functionsint32_t xPosition();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่า int32_t ซึ่งแสดงพิกัด x ในหน่วยพิกเซลตั้งแต่ 0 ถึง 479 ของการกดหน้าจอครั้งล่าสุด
// 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 Functionsint32_t yPosition();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่า int32_t ซึ่งแสดงค่าพิกัด y ในหน่วยพิกเซล ตั้งแต่ 0 ถึง 239 ของการกดหน้าจอครั้งล่าสุด
// 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 Functions1 — เรียกใช้ฟังก์ชันเมื่อกดที่หน้าจอ
void pressed( void (*callback)(void) );
Parameters2 — เรียกฟังก์ชันเมื่อกดที่หน้าจอ และส่งอาร์กิวเมนต์ที่ผู้ใช้กำหนดไปยังฟังก์ชันเรียกกลับ
void pressed( void (*callback)(void*), void* arg );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ฟังก์ชันที่จะถูกเรียกใช้เมื่อกดที่หน้าจอ |
|
|
ฟังก์ชันที่จะถูกเรียกเมื่อกดที่หน้าจอและรับค่าพารามิเตอร์ที่ผู้ใช้กำหนด |
|
|
ค่าที่ผู้ใช้กำหนดเอง ซึ่งจะถูกส่งไปยังฟังก์ชันเรียกกลับเมื่อกดที่หน้าจอ |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesฟังก์ชันเรียกกลับ (callback function) จะถูกเรียกใช้งานทุกครั้งที่กดหน้าจอ Brain
สามารถลงทะเบียนฟังก์ชันเรียกกลับได้ครั้งละหนึ่งฟังก์ชันเท่านั้น การเรียก
pressedอีกครั้งจะแทนที่ฟังก์ชันเรียกกลับก่อนหน้าฟังก์ชันเรียกกลับต้องส่งคืนค่า
void
กำหนดฟังก์ชันเรียกกลับ (นอก
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 Functions1 — เรียกฟังก์ชันเมื่อปล่อยหน้าจอหลังจากกด
void released( void (*callback)(void) );
Parameters2 — เรียกฟังก์ชันเมื่อปล่อยหน้าจอหลังจากกด และส่งอาร์กิวเมนต์ที่ผู้ใช้กำหนดไปยังฟังก์ชันเรียกกลับ
void released( void (*callback)(void*), void* arg );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ฟังก์ชันที่จะถูกเรียกเมื่อปล่อยหน้าจอหลังจากกดค้างไว้ |
|
|
ฟังก์ชันที่จะถูกเรียกเมื่อปล่อยหน้าจอหลังจากถูกกด และรับค่าพารามิเตอร์ที่ผู้ใช้กำหนด |
|
|
ค่าที่ผู้ใช้กำหนดเอง ซึ่งจะถูกส่งไปยังฟังก์ชันเรียกกลับเมื่อปล่อยหน้าจอหลังจากถูกกด |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesฟังก์ชันเรียกกลับ (callback function) จะถูกเรียกใช้งานทุกครั้งที่ปล่อยหน้าจอ Brain หลังจากถูกกด
สามารถลงทะเบียนฟังก์ชันเรียกกลับได้ครั้งละหนึ่งฟังก์ชันเท่านั้น การเรียก
releasedอีกครั้งจะแทนที่ฟังก์ชันเรียกกลับก่อนหน้าฟังก์ชันเรียกกลับต้องส่งคืนค่า
void
กำหนดฟังก์ชันเรียกกลับ (นอก
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); } }










