화면#

소개#

screen 클래스는 brain 기본 클래스에서 파생됩니다. 이는 IQ(2세대) 두뇌가 내장 화면에 텍스트, 숫자 및 그래픽을 표시하는 방식을 제어합니다.

기본적으로 Brain에 인쇄할 때 사용되는 글꼴은 고정폭 소글자입니다.

그림을 그릴 때 브레인의 해상도는 160 x 108 픽셀입니다.

입장#

screen 클래스는 다음 방법으로 접근할 수 있습니다.

Brain.Screen

메모#

  • The screen object is provided by the Brain. It is not constructed directly.

  • 프로젝트는 단일 전역 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
  • 출력은 화면상의 현재 커서 위치( 에서 시작됩니다.

  • 인쇄된 텍스트는 현재 화면 글꼴 합니다.

  • 인쇄된 텍스트는 현재 펜 색상 합니다.

  • print 로 인쇄된 텍스트는 항상 배경과 함께 인쇄되며, 배경색은 현재 채우기 색상 에 따라 결정됩니다.

  • 형식 문자열을 사용할 때 전달되는 값의 개수와 유형은 문자열의 형식 지정자와 일치해야 합니다.

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

화면 왼쪽 상단에 흰색 글씨로 "Hello, Robot!"이 인쇄된 IQ(2세대) 브레인의 스크린샷입니다.

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

화면 왼쪽 상단 해당 위치에 25가 인쇄된 IQ(2세대) 브레인의 스크린샷입니다.

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세대) 브레인 화면의 스크린샷으로, 왼쪽 상단에 흰색 텍스트 두 줄이 표시되어 있습니다. 위쪽 줄에는 Line 1이라고 적혀 있고, 바로 아래 줄에는 Line 2라고 적혀 있습니다.

clearLine#

IQ(2세대) 브레인 스크린의 한 행에서 텍스트를 지웁니다.

Available Functions

1 — 커서 위치에서 현재 줄의 나머지 부분을 지웁니다.

void clearLine();

2 — 현재 구성된 채우기 색상을 사용하여 지정된 행을 지웁니다.

void clearLine(
    int number );

3 — 미리 정의된 또는 사용자 지정 색상 개체를 사용하여 지정된 행을 지웁니다.

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

4 — 16진수 색상 값을 사용하여 지정된 행을 지웁니다.

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

5 — 색조 값을 사용하여 지정된 행을 지웁니다.

void clearLine(
    int number,
    int hue );

Parameters

매개변수

유형

설명

number

int

지울 행 번호입니다. 행 번호는 1 부터 시작합니다.

color

const color&

color 개체를 사용하여 행을 지웁니다. 미리 정의된 색상은 다음과 같습니다.

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
이 기능은 사용자 지정 색상 개체도 사용할 수 있습니다.

color

const char*

16진수 색상 값을 사용하여 행을 지웁니다(예: “#000000”).

hue

int

색상환의 각도를 나타내는 0~359범위의 정수 색조 값을 사용하여 행을 지웁니다.

Return Values

이 함수는 값을 반환하지 않습니다.

Notes
  • 한 줄을 지워도 현재 커서 위치는 변경되지 않습니다.

  • 커서 위치와 행 번호는 setCursor를 사용하여 설정됩니다.

  • hue 매개변수 값은 아래 그림과 같이 원형 색상환을 기반으로 하며, 값은 색상환 주위의 각도를 나타냅니다(예: 빨간색은 0° 부근, 녹색은 120° 부근, 파란색은 240° 부근).

빨간색은 0, 녹색은 120, 파란색은 240으로, 0부터 359까지의 색상 범위를 보여주는 색상환입니다.

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
  • The cursor position is based on the current screen font.

  • 반환된 값은 다음 출력물이 나타날 위치를 나타냅니다.

  • 텍스트가 인쇄되거나 setCursor가 호출될 때 행 값이 변경됩니다.

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

화면 왼쪽의 3행 12열 위치에 흰색으로 텍스트 3행이 표시된 IQ(2세대) 브레인 화면의 스크린샷입니다.

column#

IQ(2세대) 브레인 화면에 텍스트가 출력될 열을 반환합니다.

Available Functions
int32_t column();

Parameters

이 함수는 매개변수를 받지 않습니다.

Return Values

텍스트가 출력될 열을 나타내는 int32_t 을 반환합니다.

열 번호는 1부터 시작합니다.

Notes
  • The cursor position is based on the current screen font.

  • 반환된 값은 다음 출력물이 나타날 위치를 나타냅니다.

  • 텍스트가 인쇄되거나 setCursor가 호출될 때 열 값이 변경됩니다.

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

화면 상단 1행 9열에 흰색으로 표시된 9번째 열을 보여주는 IQ(2세대) 브레인 화면의 스크린샷입니다.

getStringHeight#

IQ(2세대) 브레인 화면에 표시될 때 문자열의 높이를 픽셀 단위로 반환합니다.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

매개변수

유형

설명

cstr

const char*

측정할 텍스트는 C 스타일 문자열로 제공됩니다(예: “Hello”).

Return Values

Brain 화면에 렌더링될 때 문자열의 높이를 픽셀 단위로 나타내는 int32_t 을 반환합니다.

Notes
  • 반환되는 높이는 현재 선택된 화면 에 따라 달라.

  • 이 함수는 화면에 문자열을 표시하지 않고 문자열의 길이를 측정합니다.

  • 반환된 높이는 문자열이 출력될 때의 모습을 반영합니다.

getStringWidth#

IQ(2세대) 브레인 화면에 표시될 때 문자열의 너비를 픽셀 단위로 반환합니다.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

매개변수

유형

설명

cstr

const char*

측정할 텍스트는 C 스타일 문자열로 제공됩니다(예: “Hello”).

Return Values

Brain 화면에 렌더링될 때 문자열의 너비를 픽셀 단위로 나타내는 int32_t 을 반환합니다.

Notes
  • 반환되는 너비는 현재 선택된 화면 에 따라 달라.

  • 이 함수는 화면에 문자열을 표시하지 않고 문자열의 길이를 측정합니다.

  • 반환된 너비는 문자열이 출력될 때의 모양을 반영합니다.

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 — 16진수 색상 값을 사용하여 화면을 지웁니다.

void clearScreen(
    const char* color );

4 — 색조 값을 사용하여 화면을 지웁니다.

void clearScreen(
    int hue );

Parameters

매개변수

유형

설명

color

const color&

color 객체를 사용하여 화면을 지웁니다. 미리 정의된 색상은 다음과 같습니다.

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
이 기능은 사용자 지정 색상 객체도 사용할 수 있습니다.

color

const char*

16진수 색상 값을 문자열로 표현하여 화면을 지웁니다(예: “#000000”).

hue

int

색상환의 각도를 나타내는 0~359범위의 정수 색조 값을 사용하여 화면을 지웁니다.

Return Values

이 함수는 값을 반환하지 않습니다.

Notes
  • hue 매개변수 값은 아래 그림과 같이 원형 색상환을 기반으로 하며, 값은 색상환 주위의 각도를 나타냅니다(예: 빨간색은 0° 부근, 녹색은 120° 부근, 파란색은 240° 부근).

빨간색은 0, 녹색은 120, 파란색은 240으로, 0부터 359까지의 색상 범위를 보여주는 색상환입니다.

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 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 — 16진수 색상 값을 사용하여 펜 색상을 설정합니다.

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*

16진수 색상 값을 문자열로 표현하여 펜 색상을 설정합니다(예: “#FF0000”).

hue

int

펜 색상은 0~359범위의 정수 색조 값을 사용하여 설정합니다. 이 값은 색상환의 각도를 나타냅니다(예: 0 는 빨간색, 120 은 녹색, 240 는 파란색).

Return Values

이 함수는 값을 반환하지 않습니다.

Notes
  • 프로젝트 시작 시 기본 펜 색상은 white 입니다.

  • 펜 색상은 도형의 윤곽선(예: drawCircle 또는 drawRectangle), 텍스트 및 숫자 출력(print 및 printAt) 및 drawPixel로 그려진 개별 픽셀에 사용됩니다.

  • hue 매개변수 값은 아래 그림과 같이 원형 색상환을 기반으로 하며, 값은 색상환 주위의 각도를 나타냅니다(예: 빨간색은 0° 부근, 녹색은 120° 부근, 파란색은 240° 부근).

빨간색은 0, 녹색은 120, 파란색은 240으로, 0부터 359까지의 색상 범위를 보여주는 색상환입니다.

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 — 16진수 색상 값을 사용하여 채우기 색상을 설정합니다.

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*

16진수 색상 값을 문자열로 표현하여 채우기 색상을 설정합니다(예: “#00FF00”).

hue

int

색상환의 각도를 나타내는 0~359범위의 정수 색조 값을 사용하여 채우기 색상을 설정합니다(예: 0 는 빨간색, 120 은 녹색, 240 는 파란색).

Return Values

이 함수는 값을 반환하지 않습니다.

Notes
  • 프로젝트 시작 시 기본 채우기 색상은 black 입니다.

  • 채우기 색상은 도형의 내부(예: drawCircle 또는 drawRectangle)에 사용됩니다.

  • 채우기 색상은 인쇄된 텍스트의 배경색으로 사용됩니다(예: print 및 printAt).

    • 인쇄된 텍스트에 transparent 사용하면 배경은 black 됩니다.

  • hue 매개변수 값은 아래 그림과 같이 원형 색상환을 기반으로 하며, 값은 색상환 주위의 각도를 나타냅니다(예: 빨간색은 0° 부근, 녹색은 120° 부근, 파란색은 240° 부근).

빨간색은 0, 녹색은 120, 파란색은 240으로, 0부터 359까지의 색상 범위를 보여주는 색상환입니다.

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축 위치는 브레인 화면의 왼쪽 상단 모서리를 기준으로 0에서 159까지의 범위를 갖습니다.

y

int32_t

원점의 y축 위치는 브레인 화면의 왼쪽 상단 모서리를 기준으로 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세대) 브레인의 화면 스크린샷. 왼쪽 상단 사분면에 클립 영역 내에 인쇄된 내용을 반영하여 흰색 텍스트로 "Cut"이라고 쓰여 있고 그 바로 아래에 빨간색 사각형이 있습니다.

drawPixel#

선택한 x, y 픽셀 위치에 IQ(2세대) 브레인 화면의 픽셀 하나를 그립니다.

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#

IQ(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 — 현재 구성된 채우기 색상을 사용하여 직사각형을 그리고 채웁니다.

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

2 — 미리 정의된 또는 사용자 지정 색상 객체를 사용하여 사각형을 그리고 채웁니다.

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

3 — 16진수 색상 값을 사용하여 사각형을 그리고 채웁니다.

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

4 — 색조 값을 사용하여 사각형을 그리고 채웁니다.

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&

color 객체를 사용하여 사각형을 채웁니다. 미리 정의된 색상은 다음과 같습니다.

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
또한 사용자 지정 색상 객체를 사용할 수 있습니다.

color

const char*

사각형 영역을 16진수 색상 값(예: “#FF0000” )으로 채웁니다.

hue

int

0–359 범위의 색조 값을 사용하여 사각형을 채웁니다.

Return Values

이 함수는 값을 반환하지 않습니다.

Notes
  • 사각형 윤곽선은 setPenColor로 설정된 현재 펜 색상을 사용하여 그려집니다.

  • 윤곽선 두께는 setPenWidth로 설정된 현재 펜 너비에 의해 결정됩니다.

  • color 매개변수가 제공되지 않으면 사각형 내부는 setFillColor로 설정된 현재 채우기 색상을 사용하여 채워집니다.

  • x 및 y 좌표는 현재 화면 원점을 기준으로 하며 setOrigin을 사용하여 변경할 수 있습니다.

  • 사각형의 일부가 화면 경계를 벗어나면 보이는 부분만 그려집니다.

  • hue 매개변수 값은 아래 그림과 같이 원형 색상환을 기반으로 하며, 값은 색상환 주위의 각도를 나타냅니다(예: 빨간색은 0° 부근, 녹색은 120° 부근, 파란색은 240° 부근).

빨간색은 0, 녹색은 120, 파란색은 240으로, 0부터 359까지의 색상 범위를 보여주는 색상환입니다.

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

화면 중앙에 얇은 흰색 테두리가 있는 큰 빨간색 사각형이 그려진 IQ Brain 화면의 스크린샷입니다.

drawCircle#

IQ(2세대) 브레인 스크린에 지정된 위치와 반지름으로 원을 그립니다.

Available Functions

1 — 현재 구성된 채우기 색상을 사용하여 원을 그리고 채웁니다.

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

2 — 미리 정의된 객체 또는 사용자 지정 색상 객체를 사용하여 원을 그리고 채웁니다.

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

3 — 16진수 색상 값을 사용하여 원을 그리고 채웁니다.

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&

color 객체를 사용하여 원을 채웁니다. 미리 정의된 색상은 다음과 같습니다.

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
이 기능은 사용자 지정 색상 객체도 사용할 수 있습니다.

color

const char*

16진수 색상 값(예: “#FF0000” )을 사용하여 원을 채웁니다.

hue

int

0–359 범위의 색조 값을 사용하여 원을 채웁니다.

Return Values

이 함수는 값을 반환하지 않습니다.

Notes
  • 원형 윤곽선은 setPenColor로 설정된 현재 펜 색상을 사용하여 그려집니다.

  • 윤곽선 두께는 setPenWidth로 설정된 현재 펜 너비에 의해 결정됩니다.

  • color 매개변수가 제공되지 않으면 원 내부는 setFillColor로 설정된 현재 채우기 색상을 사용하여 채워집니다.

  • x 및 y 좌표는 현재 화면 원점을 기준으로 하며 setOrigin을 사용하여 변경할 수 있습니다.

  • hue 매개변수 값은 아래 그림과 같이 원형 색상환을 기반으로 하며, 값은 색상환 주위의 각도를 나타냅니다(예: 빨간색은 0° 부근, 녹색은 120° 부근, 파란색은 240° 부근).

빨간색은 0, 녹색은 120, 파란색은 240으로, 0부터 359까지의 색상 범위를 보여주는 색상환입니다.

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

화면 중앙에 얇은 흰색 테두리가 있는 녹색 원이 있는 IQ Brain 화면의 스크린샷입니다.

drawImageFromFile#

SD 카드에 저장된 이미지 파일을 사용하여 IQ(2세대) 브레인 화면에 이미지를 그립니다.

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 해서는 안 됩니다.

    • 파일 크기를 최소화하려면 8비트 RLE 인코딩을 권장합니다.

  • 지원되는 최대 이미지 크기는 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 렌더링해야 합니다.

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