หน้าจอ#
การแนะนำ#
คลาส screen ได้รับมาจากคลาสพื้นฐาน brain โดยจะควบคุมวิธีการที่ EXP Brain แสดงข้อความ ตัวเลข และกราฟิกบนหน้าจอ
หน้าจอของ EXP Brain มีจำนวนแถวและคอลัมน์ที่กำหนดไว้สำหรับใช้ในการพิมพ์ข้อความบนหน้าจอ
โดยค่าเริ่มต้น ฟอนต์ที่ใช้ในการพิมพ์ไปยัง Brain คือ mono20 ซึ่งมี 7 แถวและ 20 คอลัมน์
สำหรับการวาดภาพ ความละเอียดของสมองจำลองนี้คือ 159 x 107 พิกเซล

เข้าถึง#
สามารถเข้าถึงคลาส 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 EXP 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, y (สามารถเลือกให้เป็นแบบทึบแสงได้)clearScreen— ล้างหน้าจอทั้งหมด (เลือกสีที่ต้องการได้)setFont— ตั้งค่าแบบอักษรที่ใช้สำหรับการพิมพ์บนหน้าจอsetPenWidth— กำหนดความหนาของเส้นที่วาดและเส้นขอบของรูปร่างsetPenColor— ตั้งค่าสีของข้อความ พิกเซล เส้น และเส้นขอบของรูปร่างsetFillColor— กำหนดสีเติมสำหรับรูปทรงที่วาดและพื้นหลังข้อความที่พิมพ์setOrigin— กำหนดจุดกำเนิดที่ใช้สำหรับพิกัดหน้าจอsetClipRegion— จำกัดการแสดงผลบนหน้าจอให้อยู่ในพื้นที่สี่เหลี่ยมผืนผ้าdrawPixel— วาดพิกเซลหนึ่งพิกเซลที่พิกัดdrawLine— วาดเส้นระหว่างสองจุดdrawRectangle— วาดสี่เหลี่ยมผืนผ้าที่ตำแหน่ง x, y ด้วยขนาดที่ระบุdrawCircle— วาดวงกลมที่ตำแหน่ง x, y ด้วยรัศมีที่กำหนดdrawImageFromFile— วาดภาพจากไฟล์การ์ด SD ลงบนหน้าจอrender— เปิดใช้งานการบัฟเฟอร์คู่หรือเรนเดอร์บัฟเฟอร์ด้านหลังไปยังหน้าจอ
ก่อนเรียกใช้ฟังก์ชันสมาชิก screen ใดๆ จะต้องสร้างอินสแตนซ์ brain ก่อน ดังแสดงด้านล่าง:
// Create the EXP Brain
brain Brain = brain();
print#
แสดงข้อความ ตัวเลข หรือค่าบูลีนบนหน้าจอ EXP 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#
ย้ายเคอร์เซอร์ไปยังแถวและคอลัมน์ที่ระบุบนหน้าจอ EXP Brain การเรียกใช้คำสั่ง print ครั้งถัดไปจะเริ่มต้นการพิมพ์ที่ตำแหน่งนั้น
void setCursor(
int32_t row,
int32_t col );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
แถวที่จะย้ายเคอร์เซอร์ไป |
|
|
คอลัมน์ที่จะย้ายเคอร์เซอร์ไป |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesส่งผลต่อตำแหน่งที่ข้อความเอาต์พุตถัดไปเริ่มต้นเมื่อใช้
printแถวและคอลัมน์จะอิงตาม แบบอักษรหน้าจอที่ตั้งค่าไว้ในปัจจุบัน
แบบอักษรเริ่มต้น (
mono20) ใช้ 12 แถวและ 48 คอลัมน์การเรียกใช้
setCursorจะส่งผลต่อตำแหน่งของข้อความที่แสดงผลถัดไปเท่านั้น
// Display text starting at Row 3 Column 10
Brain.Screen.setCursor(3, 10);
Brain.Screen.print("R3, C10");

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

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

getStringHeight#
ฟังก์ชันนี้จะส่งคืนความสูงของข้อความ (หน่วยเป็นพิกเซล) เมื่อแสดงผลบนหน้าจอ EXP Brain
Available Functionsint32_t getStringHeight(
const char* cstr );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ข้อความที่จะวัด ระบุเป็น สตริงแบบ C (ตัวอย่างเช่น |
ส่งคืนค่า int32_t ซึ่งแสดงถึงความสูงของสตริงในหน่วยพิกเซลเมื่อแสดงผลบนหน้าจอ Brain
getStringWidth#
ฟังก์ชันนี้จะส่งคืนความกว้างของข้อความ (หน่วยเป็นพิกเซล) เมื่อแสดงผลบนหน้าจอ EXP Brain
Available Functionsint32_t getStringWidth(
const char* cstr );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ข้อความที่จะวัด ระบุเป็น สตริงแบบ C (ตัวอย่างเช่น |
ส่งคืนค่า int32_t ซึ่งแสดงถึงความกว้างของสตริงในหน่วยพิกเซลเมื่อแสดงผลบนหน้าจอ Brain
The returned width depends on the currently selected screen font.
ฟังก์ชันนี้จะวัดความยาวของสตริงโดยไม่ต้องแสดงผลบนหน้าจอ
ค่าความกว้างที่ส่งคืนจะสะท้อนถึงลักษณะที่ข้อความจะปรากฏเมื่อพิมพ์ออกมา
printAt#
พิมพ์ข้อความ ตัวเลข หรือค่าบูลีน ณ พิกัดที่กำหนดบนหน้าจอ EXP 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 the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, "1");
clearScreen#
ลบภาพวาดและข้อความทั้งหมดออกจากหน้าจอของสมอง
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#
ตั้งค่าแบบอักษรที่ใช้สำหรับข้อความที่แสดงบนหน้าจอ EXP 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");

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(20, 20, 75, 50);

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

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

setFillColor#
กำหนดสีเติมที่จะใช้เมื่อวาดรูปทรง
Available Functions1 — กำหนดสีเติมโดยใช้ออบเจ็กต์ที่กำหนดไว้ล่วงหน้าหรือ สีที่กำหนดเอง
void setFillColor( const color& color );
2 — กำหนดสีเติมโดยใช้ค่าสีฐานสิบหก
void setFillColor( const char* color );
Parameters3__ — กำหนดสีเติมโดยใช้ค่าเฉดสี
void setFillColor( int hue );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
Sets the fill color using a
|
|
|
ตั้งค่าสีเติมโดยใช้ค่าสีฐานสิบหกที่แสดงเป็นสตริง (ตัวอย่างเช่น |
|
|
กำหนดสีเติมโดยใช้ค่าเฉดสีที่เป็นจำนวนเต็มในช่วง |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
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(20, 20, 75, 50);

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

drawRectangle#
วาดรูปสี่เหลี่ยมผืนผ้าบนหน้าจอ EXP 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 ถึง 159 |
|
|
พิกัด y ของมุมบนซ้ายของสี่เหลี่ยมผืนผ้า ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 107 |
|
|
ความกว้างของสี่เหลี่ยมผืนผ้า ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 159 |
|
|
ความสูงของสี่เหลี่ยมผืนผ้า กำหนดเป็นจำนวนเต็มตั้งแต่ 0 ถึง 107 |
|
|
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(20, 20, 80, 30);

drawCircle#
วาดวงกลมบนหน้าจอ EXP 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 ถึง 159 |
|
|
พิกัด y ของจุดศูนย์กลางของวงกลม ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 107 |
|
|
รัศมีของวงกลม ระบุเป็นจำนวนเต็มตั้งแต่ 0 ถึง 107 พิกเซล |
|
|
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(80, 50, 20);

drawImageFromFile#
วาดภาพบนหน้าจอ EXP Brain โดยใช้ไฟล์ภาพที่จัดเก็บไว้ใน การ์ด SD
Available Functionsbool drawImageFromFile(
const char* name,
int x,
int y );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ชื่อไฟล์ของรูปภาพบนการ์ด SD ไฟล์ต้องมีนามสกุล |
|
|
พิกัด x ในหน่วยพิกเซล ตั้งแต่ 0 ถึง 159 ซึ่งเป็นตำแหน่งที่ขอบด้านซ้ายของภาพจะถูกวาด |
|
|
ค่าพิกัด y ในหน่วยพิกเซล ตั้งแต่ 0 ถึง 107 ซึ่งเป็นตำแหน่งที่ขอบบนของภาพจะถูกวาด |
ส่งคืนค่าบูลีนที่ระบุว่าภาพถูกวาดสำเร็จหรือไม่:
true— โหลดภาพและวาดลงบนหน้าจอสำเร็จfalse— ไม่สามารถวาดภาพได้ (เช่น ไฟล์ไม่มีอยู่หรือไม่ถูกต้อง)
รูปแบบไฟล์ภาพที่รองรับได้แก่
.bmpและ.pngขนาดไฟล์ภาพต้องไม่เกิน
512 KBแนะนำให้ใช้การเข้ารหัส RLE 8 บิต เพื่อลดขนาดไฟล์ให้เหลือน้อยที่สุด
ขนาดภาพสูงสุดที่รองรับคือขนาดหน้าจอของโปรแกรม Brain (ประมาณ 159 x 107 พิกเซล)
พิกัด
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();









