화면#

소개#

screen 클래스는 brain 기본 클래스에서 파생됩니다. 이는 V5 브레인이 터치스크린에 텍스트, 숫자 및 그래픽을 표시하는 방법과 터치 입력에 반응하는 방법을 제어합니다.

기본적으로 Brain에 인쇄할 때 사용하는 글꼴은 고폭 고정폭 글꼴이며, 12행 48열로 구성됩니다.

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

빨간색 격자선이 있는 V5 브레인 화면은 총 12행 48열의 레이아웃을 보여줍니다. 픽셀 크기는 가로 479, 세로 239입니다. 왼쪽 위 모서리는 (0,0) 픽셀, 1행 1열에서 시작하고, 오른쪽 아래 모서리는 (479, 239) 픽셀, 12행 48열에서 끝납니다.

입장#

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 V5 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 — Brain 화면에서 모든 그림과 텍스트를 지웁니다.

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

print#

V5 브레인 화면에 텍스트, 숫자 또는 부울 값을 표시합니다.

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

V5 브레인의 스크린샷으로, 화면 왼쪽 상단에 흰색 글씨로 "Hello, Robot!"이 인쇄되어 있습니다.

setCursor#

V5 Brain 화면의 특정 행과 열로 커서를 이동합니다. 다음 print 호출은 해당 위치에서 인쇄를 시작합니다.

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

Parameters

매개변수

유형

설명

row

int32_t

커서를 이동할 행입니다.

col

int32_t

커서를 이동할 열입니다.

Return Values

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

Notes
  • print를 사용할 때 후속 텍스트 출력이 시작되는 위치에 영향을 미칩니다.

  • 행과 열은 현재 설정된 화면 글꼴을 기준으로 합니다.

  • 기본 글꼴(mono20)은 12행 48열을 사용합니다.

  • setCursor 을 호출하면 이후 텍스트 출력의 위치에만 영향을 미칩니다.

Examples
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

화면 중앙 부근 상단 부분에 3행 12열이 인쇄된 V5 브레인의 스크린샷입니다.

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

V5 브레인 화면의 스크린샷으로, 왼쪽 상단 모서리에 두 줄의 흰색 텍스트가 표시됩니다. 위쪽 줄에는 Line 1이라고 적혀 있고, 바로 아래 줄에는 Line 2라고 적혀 있습니다.

clearLine#

V5 브레인 화면의 특정 행에서 텍스트를 지웁니다.

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#

V5 브레인 화면에 텍스트가 출력될 행을 반환합니다.

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

V5 브레인 화면의 스크린샷으로, 화면 왼쪽 상단 사분면의 3행 12열 위치에 흰색으로 3이라는 텍스트가 표시되어 있습니다.

column#

V5 Brain 화면에 텍스트가 출력될 열을 반환합니다.

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.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

V5 브레인 화면의 스크린샷으로, 화면 왼쪽 상단 사분면의 3행 15열 위치에 흰색으로 15라는 텍스트가 표시되어 있습니다.

getStringHeight#

V5 Brain 화면에 렌더링될 때 문자열의 높이를 픽셀 단위로 반환합니다.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

매개변수

유형

설명

cstr

const char*

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

Return Values

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

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

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

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

getStringWidth#

V5 Brain 화면에 표시될 때 문자열의 너비를 픽셀 단위로 반환합니다.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

매개변수

유형

설명

cstr

const char*

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

Return Values

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

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

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

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

printAt#

V5 브레인 화면의 특정 좌표에 텍스트, 숫자 또는 부울 값을 출력합니다.

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 "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

화면 중앙에 흰색 글씨로 "Center"라고 쓰여 있는 V5 브레인 화면의 스크린샷입니다.

clearScreen#

브레인 화면의 모든 그림과 텍스트를 지우고 커서 위치를 1행 1열로 재설정합니다.

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

인쇄 가능 영역 전체가 밝은 파란색으로 표시된 V5 브레인 화면의 스크린샷.

setFont#

V5 브레인 화면에 표시되는 텍스트에 사용되는 글꼴을 설정합니다.

이것은 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
  • fontType::cjk16 — Can print Chinese, Japanese, and Korean characters.
    • Simplified Chinese — Can be seen up to column 28.
    • Traditional Chinese — Can be seen up to column 28.
    • Japanese (Kanji) — Can be seen up to column 28.
    • Korean (Hangul) — Can be seen up to column 30.
These options are shown below.

V5 브레인 화면의 스크린샷입니다. 왼쪽 상단에 MONO 12 글꼴로 흰색 숫자와 문자가 인쇄되어 있습니다. 화면 너비의 약 4분의 1을 차지하는 한 줄에 AZ가 표시되어 있습니다. 왼쪽 하단에는 80열 20행이라고 적혀 있습니다.
mono12

이전 이미지와 동일한 이미지이며, Mono 15 글꼴을 사용했습니다. 화면 너비의 거의 절반에 걸쳐 한 줄로 AZ가 표시됩니다. 왼쪽 하단에는 68열 16행이라고 적혀 있습니다.
mono15

이전 이미지와 동일하지만 Mono 20 글꼴을 사용했습니다. 화면 너비의 거의 3분의 2에 걸쳐 한 줄로 AZ가 표시됩니다. 왼쪽 하단에는 48열 12행이라고 적혀 있습니다.
mono20

이전 이미지와 동일하지만 Mono 30 글꼴을 사용했습니다. 화면 전체 너비에 걸쳐 한 줄로 AZ가 표시됩니다. 왼쪽 하단에는 32열 8행이라고 적혀 있습니다.
mono30

이전 이미지와 동일하지만 Mono 40 글꼴을 사용했습니다. 화면 전체 너비에 걸쳐 한 줄로 AX가 표시되어 있습니다. 왼쪽 하단에는 24열 6행이라고 적혀 있습니다.
mono40

이전 이미지와 동일하지만 Mono 60 글꼴을 사용했습니다. 화면 전체 너비에 걸쳐 한 줄로 AP가 표시되어 있습니다. 하단에는 16열 4행이라고 표시되어 있습니다.
mono60

이전 이미지와 동일한 이미지이며, Prop 20 글꼴이 사용되었습니다. 화면 너비의 거의 3분의 2에 걸쳐 한 줄로 AZ가 표시되어 있습니다. 왼쪽 하단에는 48열 12행이라고 적혀 있습니다.
prop20

이전 이미지와 동일한 이미지이며, Prop 30 글꼴이 사용되었습니다. AZ가 한 줄로 화면 너비의 거의 전체를 차지하며 표시되어 있습니다. 왼쪽 하단에는 32열 8행이라고 적혀 있습니다.
prop30

이전 이미지와 동일하지만 Prop 40 글꼴이 사용되었습니다. 화면 전체 너비에 걸쳐 한 줄로 AU가 표시되어 있습니다. 왼쪽 하단에는 24열 6행이라고 적혀 있습니다.
prop40

이전 이미지와 동일하지만 Prop 60 글꼴이 사용되었습니다. 화면 전체 너비에 걸쳐 한 줄로 AN이 표시되어 있습니다. 하단에는 15열 4행이라고 적혀 있습니다.
prop60

이전 이미지와 동일하며 CJK 16 글꼴을 사용합니다. 화면의 약 3분의 2를 차지하는 한 줄에 AZ가 표시됩니다. 그 다음 줄에는 간체 중국어, 번체 중국어, 한국어, 일본어로 VEXcode가 표시됩니다. 맨 아래에는 43열 12행이라고 표시되어 있습니다.
fontType::cjk16

Return Values

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

Examples
// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

V5 브레인 화면의 스크린샷으로, 왼쪽 상단 모서리에 기본값보다 큰 글꼴로 VEX라고 적힌 흰색 텍스트가 표시됩니다.


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

V5 브레인 화면의 스크린샷으로, 왼쪽 상단에 중국어 글꼴로 "VEX 기계인"이라는 텍스트가 표시되어 있습니다.

setPenWidth#

그려진 선과 도형 윤곽선의 두께를 설정합니다.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

매개변수

유형

설명

width

uint32_t

펜 너비는 픽셀 단위로 0에서 32까지입니다.

Return Values

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

Notes Examples
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

V5 브레인 화면의 스크린샷으로, 화면 왼쪽 상단 사분면에 두꺼운 테두리가 있는 직사각형이 인쇄되어 있습니다.

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
// Draw a rectangle with orange borders
Brain.Screen.setPenColor(orange);
Brain.Screen.drawRectangle(50, 50, 130, 60);

화면의 왼쪽 상단 사분면에 주황색 사각형이 그려진 V5 브레인 화면의 스크린샷입니다.

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 rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(50, 100, 130, 60);

화면의 왼쪽 아래 사분면에 보라색으로 채워진 사각형이 표시된 V5 브레인 화면의 스크린샷입니다.

setOrigin#

Brain 화면에서 그리기 및 좌표 기반 인쇄에 사용되는 원점을 설정합니다.

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

Parameters

매개변수

유형

설명

x

int32_t

원점의 x축 위치는 브레인 화면의 왼쪽 상단 모서리를 기준으로 0에서 479까지의 범위를 갖습니다.

y

int32_t

원점의 y축 위치는 브레인 화면의 왼쪽 상단 모서리를 기준으로 0에서 239까지의 범위를 갖습니다.

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에서 479 사이의 정수로 주어집니다.

y

int

클립 영역의 왼쪽 상단 모서리의 y 좌표이며, 0에서 239 사이의 정수로 주어집니다.

width

int

클립 영역의 너비를 픽셀 단위로 지정하며, 0에서 479 사이의 정수입니다.

height

int

클립 영역의 높이를 픽셀 단위로 지정하며, 0에서 239 사이의 정수입니다.

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

V5 브레인의 화면 스크린샷. 왼쪽 상단 사분면에 클립 영역 내에 인쇄된 내용을 반영하여 흰색 텍스트로 "Cut"이라고 쓰여 있고 그 바로 아래에 빨간색 사각형이 있습니다.

drawPixel#

선택한 x, y 픽셀 위치에 V5 브레인 화면의 픽셀 하나를 그립니다.

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

Parameters

매개변수

유형

설명

x

int

픽셀이 그려질 x 좌표이며, 0에서 479 사이의 정수로 주어집니다.

y

int

픽셀이 그려질 y 좌표이며, 0에서 239 사이의 정수로 주어집니다.

Return Values

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

Notes
  • 픽셀은 setPenColor로 설정된 현재 펜 색상을 사용하여 그려집니다.

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

  • 지정된 픽셀 위치가 화면 범위를 벗어나면 해당 픽셀은 그려지지 않습니다.

Examples
// Draw the pixels marking the corners of a square
Brain.Screen.drawPixel(250, 100);
Brain.Screen.drawPixel(275, 100);
Brain.Screen.drawPixel(250, 125);
Brain.Screen.drawPixel(275, 125);

화면 중앙 부근에 정사각형 모서리를 나타내는 다양한 픽셀을 보여주는 V5 브레인 화면의 스크린샷입니다.

drawLine#

V5 브레인 화면에서 두 점을 연결하는 직선을 그립니다.

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

Parameters

매개변수

유형

설명

x1

int

선분의 시작 x좌표는 0부터 479까지의 정수로 주어집니다.

y1

int

선분의 시작 y좌표는 0부터 239까지의 정수로 주어집니다.

x2

int

선분의 끝점의 x좌표는 0부터 479까지의 정수로 주어집니다.

y2

int

선분의 끝 y좌표는 0부터 239까지의 정수로 주어집니다.

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, 479, 239);

V5 브레인 화면의 스크린샷에는 왼쪽 위 모서리에서 오른쪽 아래 모서리까지 중앙을 가로지르는 얇은 대각선이 나타납니다.

drawRectangle#

V5 브레인 화면의 지정된 위치와 크기에 사각형을 그립니다.

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부터 479까지의 정수로 나타냅니다.

y

int

직사각형의 왼쪽 위 모서리의 y좌표는 0부터 239까지의 정수로 주어집니다.

width

int

직사각형의 너비는 0부터 479까지의 정수로 주어집니다.

height

int

직사각형의 높이는 0부터 239까지의 정수로 주어집니다.

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 rectangle on the screen
Brain.Screen.drawRectangle(50, 50, 130, 60);

V5 브레인의 화면 스크린샷에는 왼쪽 상단 사분면에 얇은 흰색 테두리가 있는 직사각형이 인쇄되어 있습니다.

drawCircle#

V5 브레인 화면의 지정된 위치와 반지름에 원을 그립니다.

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부터 479까지의 정수로 주어집니다.

y

int

원의 중심의 y좌표는 0부터 239까지의 정수로 주어집니다.

radius

int

원의 반지름은 0에서 239픽셀 사이의 정수로 주어집니다.

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 circle on the screen
Brain.Screen.drawCircle(240, 120, 40);

V5 브레인 화면의 스크린샷에는 가운데에 얇은 흰색 테두리가 있는 원이 그려져 있습니다.

drawImageFromFile#

SD 카드에 저장된 이미지 파일을 사용하여 V5 Brain 화면에 이미지를 그립니다.

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

Parameters

매개변수

유형

설명

name

const char*

SD 카드에 저장된 이미지 파일의 파일명입니다. 파일 확장자는 .bmp 또는 .png 이어야 합니다.

x

int

이미지의 왼쪽 가장자리가 그려질 x 좌표(픽셀 단위, 0~479)입니다.

y

int

이미지의 상단 가장자리가 그려질 y 좌표(픽셀 단위, 0~239)입니다.

Return Values

이미지가 성공적으로 그려졌는지 여부를 나타내는 부울 값을 반환합니다.

  • true — 이미지가 성공적으로 로드되어 화면에 그려졌습니다.
  • false — 이미지를 그릴 수 없었습니다(예: 파일이 없거나 유효하지 않은 경우).

Notes
  • 지원되는 이미지 형식은 .bmp 및 .png 입니다.

  • 이미지 파일 크기는 512 KB 해서는 안 됩니다.

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

  • 지원되는 최대 이미지 크기는 Brain 화면 크기(약 479 x 239 픽셀)입니다.

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

pressing#

V5 브레인 화면이 현재 눌러져 있는지 여부를 보고합니다.

Available Functions
bool pressing();

Parameters

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

Return Values

현재 화면 눌림 상태를 나타내는 부울 값을 반환합니다.true 은 화면이 현재 눌려 있음을 나타냅니다. 또는 false 은 화면이 눌려 있지 않음을 나타냅니다.

Examples
// Change the screen's color after it's pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.setFillColor(green);
Brain.Screen.drawRectangle(0, 0, 479, 239);


// Display different messages after the screen is pressed
while (!Brain.Screen.pressing()) {
  wait(5, msec);
}
Brain.Screen.print("First message!");
Brain.Screen.newLine();

// Lift finger to press the screen again
while (Brain.Screen.pressing()) {
  wait(5, msec);
}
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}
Brain.Screen.print("Second message!");
Brain.Screen.newLine();

xPosition#

V5 Brain 화면에서 마지막으로 누른 위치의 x 좌표를 반환합니다.

Available Functions
int32_t xPosition();

Parameters

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

Return Values

마지막 화면 클릭의 x 좌표(0~479 픽셀)를 나타내는 int32_t 를 반환합니다.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

yPosition#

V5 브레인 화면에서 마지막으로 누른 위치의 y 좌표를 반환합니다.

Available Functions
int32_t yPosition();

Parameters

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

Return Values

마지막 화면 클릭의 y 좌표(0~239 픽셀)를 나타내는 0에서 239 사이의 정수 int32_t 를 반환합니다.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

pressed#

V5 브레인 화면을 눌렀을 때 호출될 함수를 등록합니다.

Available Functions

1 — 화면을 누르면 함수를 호출합니다.

void pressed(
    void (*callback)(void)
);

2 — 화면을 누르면 함수를 호출하고 사용자 정의 인수를 콜백 함수에 전달합니다.

void pressed(
    void (*callback)(void*),
    void* arg );

Parameters

매개변수

유형

설명

callback

void (*)(void)

화면을 눌렀을 때 호출되는 함수입니다.

callback

void ()(void)

화면 터치 시 호출되며 사용자 정의 인수를 받는 함수입니다.

arg

void*

화면을 눌렀을 때 콜백 함수로 전달되는 사용자 정의 값입니다.

Return Values

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

Notes
  • 콜백 함수는 브레인 화면을 누를 때마다 실행됩니다.

  • 한 번에 하나의 콜백 함수만 등록할 수 있습니다. pressed 다시 누르면 이전에 등록했던 콜백 함수가 덮어쓰여집니다.

  • 콜백 함수는 void 반환해야 합니다.

Examples

콜백 함수를 정의하십시오( int main() 외부).

// Tracks how many times the screen is pressed.
void onScreenPressed(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Pressed %d times", *count);
}

int main() 내부에 콜백을 등록합니다.

int main() {
  int pressCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.pressed(onScreenPressed, &pressCount);

  while (true) {
    wait(20, msec);
  }
}

released#

V5 브레인 화면을 누른 상태에서 손을 떼면 호출될 함수를 등록합니다.

Available Functions

1 — 화면 버튼을 누른 후 손을 떼면 함수를 호출합니다.

void released(
    void (*callback)(void)
);

2 — 화면 터치가 해제될 때 함수를 호출하고 사용자 정의 인수를 콜백 함수에 전달합니다.

void released(
    void (*callback)(void*),
    void* arg );

Parameters

매개변수

유형

설명

callback

void (*)(void)

화면 터치를 해제했을 때 호출되는 함수입니다.

callback

void ()(void)

화면 터치가 해제될 때 호출되는 함수로, 사용자가 정의한 인수를 받습니다.

arg

void*

사용자가 정의한 값으로, 버튼을 누른 상태에서 손을 떼면 콜백 함수로 전달됩니다.

Return Values

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

Notes
  • 콜백 함수는 브레인 화면을 누른 후 손을 뗄 때마다 실행됩니다.

  • 한 번에 하나의 콜백 함수만 등록할 수 있습니다. released 이 해제되고 이전 콜백 함수가 다시 대체됩니다.

  • 콜백 함수는 void 반환해야 합니다.

Examples

콜백 함수를 정의하십시오( int main() 외부).

// Tracks how many times the screen is released.
void onScreenReleased(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Released %d times", *count);
}

int main() 내부에 콜백을 등록합니다.

int main() {
  int releaseCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.released(onScreenReleased, &releaseCount);

  while (true) {
    wait(20, msec);
  }
}