หน้าจอ#

การแนะนำ#

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

เครื่องตรวจวัดระดับสติปัญญา IQ (รุ่นที่ 1) รองรับข้อความได้สูงสุด 5 แถวและ 21 คอลัมน์

สมอง VEX IQ (รุ่นที่ 1) พร้อมตารางตัวเลขซ้อนทับ (คอลัมน์ 1–21 และแถว 1–5) เส้นสีแดงที่ซ้อนทับเน้นโครงสร้างตาราง โดยมีลูกศรกำกับคอลัมน์ 1, คอลัมน์ 21, แถว 1, แถว 2 และแถว 5 แถวแรกแสดงตัวเลข 1 ถึง 21 เรียงจากด้านบน

เข้าถึง#

สามารถเข้าถึงคลาส 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 ด้วยรัศมีที่กำหนด

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

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

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

print#

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

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

setCursor#

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

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

row

int32_t

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

col

int32_t

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

Return Values

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

Notes Examples
// Print at row 3 column 7
Brain.Screen.setCursor(3, 7);
Brain.Screen.print("VEXcode!");

หน้าจอ IQ (รุ่นที่ 1) แสดงข้อความตรงกลางว่า “VEXcode!”

newLine#

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

Available Functions
void newLine();

Parameters

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

Return Values

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

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

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

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

Examples
// Display two lines of text
Brain.Screen.print("First message");
Brain.Screen.newLine();
Brain.Screen.print("Second message");

หน้าจอ IQ (รุ่นที่ 1) แสดง "ข้อความแรก" และ "ข้อความที่สอง" โดยแสดงบนบรรทัดแยกกัน

clearLine#

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

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

  • หน้าจอแสดงผล IQ (รุ่นที่ 1) เป็นจอแสดงผลขาวดำ ดังนั้นสีบางสีจะไม่ปรากฏบนหน้าจอ

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 (รุ่นที่ 1)

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

column#

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

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

getStringHeight#

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

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

cstr

const char*

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

Return Values

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

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

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

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

getStringWidth#

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

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 (รุ่นที่ 1)

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

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
  • หน้าจอแสดงผล IQ (รุ่นที่ 1) เป็นจอแสดงผลขาวดำ ดังนั้นสีบางสีจะไม่ปรากฏบนหน้าจอ

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

setFont#

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

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

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

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

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
  • หน้าจอแสดงผล IQ (รุ่นที่ 1) เป็นจอแสดงผลขาวดำ ดังนั้นสีบางสีจะไม่ปรากฏบนหน้าจอ

Examples
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(50, 50, 10, 20);

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
  • หน้าจอแสดงผล IQ (รุ่นที่ 1) เป็นจอแสดงผลขาวดำ ดังนั้นสีบางสีจะไม่ปรากฏบนหน้าจอ

Examples
// Draw a circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);

setOrigin#

กำหนดจุดกำเนิดที่ใช้ในการวาดภาพกราฟิกบนหน้าจอของสมอง

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

drawPixel#

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

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int

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

y

int

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

Return Values

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

Notes
  • หน้าจอแสดงผล IQ (รุ่นที่ 1) เป็นจอแสดงผลขาวดำ ดังนั้นสีบางสีจะไม่ปรากฏบนหน้าจอ

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

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

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

drawLine#

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

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
  • หน้าจอแสดงผล IQ (รุ่นที่ 1) เป็นจอแสดงผลขาวดำ ดังนั้นสีบางสีจะไม่ปรากฏบนหน้าจอ

  • ความกว้างของเส้นจะถูกกำหนดโดยความกว้างของปากกาปัจจุบันที่ตั้งไว้ด้วย 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);

drawRectangle#

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

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
  • หน้าจอแสดงผล IQ (รุ่นที่ 1) เป็นจอแสดงผลขาวดำ ดังนั้นสีบางสีจะไม่ปรากฏบนหน้าจอ

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

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

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

Examples
// Draw a red rectangle on the screen
Brain.Screen.drawRectangle(25, 25, 100, 50, red);

drawCircle#

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

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
  • หน้าจอแสดงผล IQ (รุ่นที่ 1) เป็นจอแสดงผลขาวดำ ดังนั้นสีบางสีจะไม่ปรากฏบนหน้าจอ

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

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

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

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