หน้าจอ#

การแนะนำ#

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

โดยค่าเริ่มต้น ฟอนต์ที่ใช้ในการพิมพ์ไปยัง Brain คือ monospaced small

สำหรับการวาดภาพ ความละเอียดของสมองจำลองนี้คือ 160 x 108 พิกเซล

เข้าถึง#

สามารถเข้าถึงคลาส 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 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 — ล้างหน้าจอทั้งหมด (เลือกสีที่ต้องการได้)

  • 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 Brain
brain Brain = brain();

print#

แสดงข้อความ ตัวเลข หรือค่าบูลีนบนหน้าจอ IQ (รุ่นที่ 2)

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

ภาพหน้าจอของ IQ (รุ่นที่ 2) Brain แสดงข้อความ Hello, Robot! พิมพ์อยู่มุมบนซ้ายของหน้าจอด้วยข้อความสีขาว

setCursor#

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

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

row

int32_t

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

col

int32_t

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

Return Values

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

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

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

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

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

Examples
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Repeatedly print the Brain timer at top-left
  while (true) {
    Brain.Screen.print("%d", Brain.Timer.time(seconds));
    Brain.Screen.newLine();
    wait(1, seconds);
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
  }
}

ภาพหน้าจอแสดงผลการทดสอบ IQ (รุ่นที่ 2) ของสมอง โดยมีเลข 25 พิมพ์อยู่ที่มุมซ้ายบนของหน้าจอ ในตำแหน่งนั้น

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

ภาพหน้าจอแสดงผลการทดสอบ IQ (รุ่นที่ 2) แสดงข้อความสีขาวสองบรรทัดที่มุมบนซ้าย บรรทัดบนสุดเขียนว่า บรรทัดที่ 1 และบรรทัดที่สองด้านล่างเขียนว่า บรรทัดที่ 2

clearLine#

ลบข้อความออกจากแถวบนหน้าจอทดสอบ IQ (รุ่นที่ 2)

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#

ส่งคืนแถวที่ข้อความจะถูกพิมพ์บนหน้าจอ IQ (รุ่นที่ 2)

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("row: ", Brain.Screen.row());

ภาพหน้าจอแสดงผลการทดสอบ IQ (รุ่นที่ 2) แสดงข้อความแถวที่ 3 สีขาวทางด้านซ้ายของหน้าจอ ที่ตำแหน่งแถวที่ 3 คอลัมน์ที่ 12

column#

ส่งคืนคอลัมน์ที่ข้อความจะถูกพิมพ์บนหน้าจอ IQ (รุ่นที่ 2)

Available Functions
int32_t column();

Parameters

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

Return Values

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

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

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

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

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

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

ภาพหน้าจอแสดงผลการทดสอบ IQ (รุ่นที่ 2) โดยแสดงคอลัมน์ที่ 9 สีขาวอยู่ด้านบนของหน้าจอ ที่ตำแหน่งแถวที่ 1 คอลัมน์ที่ 9

getStringHeight#

ส่งคืนค่าความสูง (หน่วยเป็นพิกเซล) ของข้อความเมื่อแสดงผลบนหน้าจอ IQ Brain (รุ่นที่ 2)

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

cstr

const char*

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

Return Values

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

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

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

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

getStringWidth#

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

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#

พิมพ์ข้อความ ตัวเลข หรือค่าบูลีน ณ พิกัดที่กำหนดบนหน้าจอ IQ (รุ่นที่ 2)

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 the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, 1);

ภาพหน้าจอของแบบทดสอบ IQ (รุ่นที่ 2) พร้อมข้อความสีขาวที่อ่านว่า 1 พิมพ์ที่ (100, 40)

clearScreen#

ลบภาพวาดและข้อความทั้งหมดออกจากหน้าจอของสมอง

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

ภาพหน้าจอการทดสอบ IQ (รุ่นที่ 2) โดยพื้นที่พิมพ์ทั้งหมดเป็นสีแดงสด

setFont#

ตั้งค่าแบบอักษรที่ใช้สำหรับข้อความที่แสดงบนหน้าจอ IQ (รุ่นที่ 2)

สิ่งนี้จะควบคุมแบบอักษรที่ใช้กับข้อความเอาต์พุตถัดไปเมื่อใช้ฟังก์ชันข้อความหน้าจอ เช่น 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
These options are shown below.

ภาพหน้าจอของโปรแกรม VEX IQ Brain ที่แสดงตัวเลขและตัวอักษรในรูปแบบ Mono 12 ตัวอักษร AZ อยู่ในบรรทัดเดียวกัน ครอบคลุมความกว้างของหน้าจอ มุมล่างซ้ายแสดงจำนวนตัวอักษร 26 ตัวในแนวนอนและ 9 แถว
mono12

ภาพหน้าจอเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Mono 15 ตัวอักษร AT อยู่ในบรรทัดเดียวกัน ครอบคลุมความกว้างของหน้าจอ มุมล่างซ้ายแสดงจำนวนตัวอักษร 20 ตัว และ 7 แถว
mono15

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

ภาพหน้าจอเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Mono 30 ตัวเลข 1 ถึง 9 และเลข 0 เพิ่มอีกหนึ่งตัว อยู่ในบรรทัดเดียวกัน ครอบคลุมความกว้างของหน้าจอ มุมล่างซ้ายแสดง 3 แถว
mono30

ภาพหน้าจอเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Mono 40 ตัวเลข 1 ถึง 8 อยู่ในบรรทัดที่สอง ครอบคลุมความกว้างของหน้าจอ
mono40

ภาพหน้าจอเดียวกันกับภาพก่อนหน้า แต่คราวนี้ใช้ฟอนต์ Mono 60 หน้าจอแสดง MN 60 ด้วยฟอนต์ขนาดใหญ่ ครอบคลุมเกือบครึ่งบนของหน้าจอ
mono60

ภาพหน้าจอเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Prop 20 ตัวอักษร AW อยู่ในบรรทัดเดียว ครอบคลุมความกว้างของหน้าจอ มุมล่างซ้ายแสดงจำนวนตัวอักษร 26 ตัว และ 5 แถว
prop20

ภาพหน้าจอเดียวกันกับภาพก่อนหน้า แต่ใช้ฟอนต์ Prop 30 ตัวเลข 1-9 ซ้ำกันสองครั้งในบรรทัดเดียว ครอบคลุมความกว้างของหน้าจอ มุมล่างซ้ายแสดงจำนวนอักขระ 18 ตัวในแนวนอนและ 3 แถว
prop30

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

ภาพหน้าจอเดียวกันกับภาพก่อนหน้า แต่คราวนี้ใช้ฟอนต์ Prop 60 หน้าจอแสดงข้อความ PROP 60 ด้วยฟอนต์ขนาดใหญ่ ครอบคลุมเกือบครึ่งบนของหน้าจอ
prop60

Return Values

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

Examples
// Display two different fonts on
// two separate lines
Brain.Screen.setFont(mono20);
Brain.Screen.print("Mono Medium");
Brain.Screen.newLine();
Brain.Screen.setFont(prop20);
Brain.Screen.print("Prop Medium");

ภาพหน้าจอของแบบทดสอบ IQ Brain ที่มีข้อความสีขาวสองบรรทัดในมุมบนซ้าย บรรทัดแรกเขียนว่า Mono Medium และบรรทัดที่สองด้านล่างเขียนว่า Prop Medium ด้วยแบบอักษรที่เล็กกว่า

setPenWidth#

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

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

width

uint32_t

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

Return Values

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

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

Examples
// Draw a circle with a pen width of 5
Brain.Screen.drawCircle(40, 70, 20);
Brain.Screen.setPenWidth(5);
Brain.Screen.drawCircle(100, 70, 20);

ภาพหน้าจอของแบบทดสอบ IQ 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
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(50, 50, 10, 20);

ภาพหน้าจอของแบบทดสอบ IQ 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 circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);

ภาพหน้าจอของแบบทดสอบ IQ Brain ที่มีวงกลมสีเหลืองสดใสพร้อมเส้นขอบสีขาวบางๆ วาดอยู่ครึ่งซ้ายของหน้าจอ

setOrigin#

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

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int32_t

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

y

int32_t

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

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 ถึง 159

y

int

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

width

int

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

height

int

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

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

ภาพหน้าจอของเครื่อง IQ (รุ่นที่ 2) พร้อมข้อความสีขาวที่เขียนว่า "ตัดออก" โดยมีสี่เหลี่ยมสีแดงทึบอยู่ด้านล่างในส่วนบนซ้าย ซึ่งแสดงสิ่งที่พิมพ์อยู่ภายในบริเวณที่ถูกตัด

drawPixel#

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

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int

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

y

int

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

Return Values

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

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

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

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

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

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

drawLine#

ลากเส้นตรงเชื่อมจุดสองจุดบนหน้าจอทดสอบไอคิว (รุ่นที่ 2)

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x1

int

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

y1

int

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

x2

int

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

y2

int

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

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, 159, 107);

ภาพหน้าจอของแบบทดสอบ IQ Brain ที่มีเส้นทแยงมุมสีขาวลากจากมุมบนซ้ายไปยังมุมล่างขวา

drawRectangle#

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

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 ถึง 159

y

int

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

width

int

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

height

int

ความสูงของสี่เหลี่ยมผืนผ้า กำหนดเป็นจำนวนเต็มตั้งแต่ 0 ถึง 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*

เติมสีลงในสี่เหลี่ยมผืนผ้าโดยใช้ค่าสีเลขฐานสิบหก (ตัวอย่างเช่น “#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 red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, red);

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

drawCircle#

วาดวงกลมบนหน้าจอ IQ (รุ่นที่ 2) ณ ตำแหน่งและรัศมีที่กำหนด

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 ถึง 159

y

int

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

radius

int

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

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 green circle on the screen
Brain.Screen.drawCircle(80, 50, 20, green);

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

drawImageFromFile#

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

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

name

const char*

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

x

int

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

y

int

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

Return Values

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

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

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

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

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

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

  • พิกัด 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();