Ekran#

Wstęp#

Metody ekranu kontrolują sposób, w jaki mózg IQ (2. generacji) wyświetla tekst, liczby i grafikę na wbudowanym ekranie.

Do rysowania rozdzielczość mózgu wynosi 160 x 108 pikseli.

Ta strona używa brain jako przykładowej nazwy Brain. W razie potrzeby zastąp ją własną, skonfigurowaną nazwą.

Poniżej znajduje się lista wszystkich metod:

Drukuj kursorem — umieść i wydrukuj tekst.

  • print — Drukuje tekst, liczby lub wartości zmiennych w bieżącej pozycji kursora.

  • set_cursor — Przenosi kursor do określonego wiersza i kolumny.

  • next_row — Przenosi kursor do kolumny 1 następnego wiersza.

  • clear_row — Czyści wiersz tekstu.

  • row — Zwraca wiersz, w którym zostanie wydrukowany tekst.

  • column — Zwraca kolumnę, w której zostanie wydrukowany tekst.

  • print_at — Drukuje tekst, liczby lub wartości zmiennych w określonych współrzędnych x i y.

  • get_string_width — Zwraca szerokość ciągu w pikselach, używając bieżącej czcionki.

  • get_string_height — Zwraca wysokość ciągu w pikselach, używając bieżącej czcionki.

Mutatory — zmieniają ustawienia ekranu, kolory i sposób rysowania.

  • clear_screen — Czyści ekran ze wszystkich rysunków i tekstu.

  • set_font — Ustawia czcionkę dla drukowanego tekstu.

  • set_pen_width — Ustawia grubość rysowanych linii i konturów kształtów.

  • set_pen_color — Ustawia kolor tekstu, pikseli, linii i konturów kształtów.

  • set_fill_color — Ustawia kolor wypełnienia dla narysowanych kształtów i tła drukowanego tekstu.

  • set_origin — Ustawia początek używany do drukowania i rysowania na podstawie współrzędnych.

Rysuj — dodaj grafikę do ekranu.

  • draw_pixel — Rysuje jeden piksel w danym punkcie współrzędnych.

  • draw_line — Rysuje linię między dwoma punktami.

  • draw_rectangle — Rysuje prostokąt.

  • draw_circle — Rysuje okrąg.

  • set_clip_region — Ogranicza miejsca, w których mogą pojawiać się rysunki i tekst.

  • render — Aktualizuje ekran mózgu tekstem i rysunkami tylko po wywołaniu.

Drukowanie kursora#

print#

print drukuje tekst, liczby lub wartości zmiennych na ekranie Brain w bieżącej pozycji kursora i czcionce.

Usage:
brain.screen.print(text, precision, opaque)

Parametry

Opis

text

Tekst, liczba lub wartość zmiennej do wydrukowania na ekranie.

precision

Opcjonalnie. Liczba miejsc dziesiętnych do wyświetlenia podczas wyświetlania liczb. Musi być zapisana jako argument słowa kluczowego, np.:precision=3Wartość domyślna to 2.

opaque

Opcjonalnie. opaque=True — Tło tekstu zostanie wypełnione bieżącym kolorem wypełnienia lub domyślnie kolorem czarnym. opaque=False (domyślnie) — Tło tekstu będzie pasować do koloru tła ekranu.

# Display a message at the starting
# cursor position
brain.screen.print("Hello, Robot!")

Zrzut ekranu VEX IQ Brain przedstawia w pierwszym wierszu biały napis Hello, Robot!

# Display a percentage with 4 decimal
# places and a blue background
brain.screen.set_fill_color(Color.BLUE)
brain.screen.print((42/100), precision = 4, opaque = True)

set_cursor#

set_cursor przenosi kursor do określonego wiersza i kolumny na ekranie Brain. Następne wywołanie print rozpocznie drukowanie w tym miejscu. Liczba wierszy i kolumn, które wygodnie się zmieszczą, zależy od wybranej czcionki.

Czcionki o stałej szerokości mają znaki o tej samej szerokości, co zapewnia spójność rozmieszczenia tekstu. Natomiast czcionki proporcjonalne różnią się szerokością znaków, przez co niektóre litery zajmują więcej miejsca niż inne. Jednak niezależnie od użytego typu, set_cursor pozycjonuje kursor na podstawie rozmiaru wiersza i kolumny, a nie stylu czcionki. Rozmiar czcionki można dostosować za pomocą set_font.

Usage:
brain.screen.set_cursor(row, column)

Parametry

Opis

row

Wiersz, do którego należy przenieść kursor.

column

Kolumna, do której należy przenieść kursor.

# Repeatedly print the Brain's timer at
# the top left of the screen
while True:
    brain.screen.print(brain.timer.time(SECONDS))
    brain.screen.next_row()
    wait(1, SECONDS)
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)

Zrzut ekranu IQ Brain przedstawia liczbę 23,19 w białym tekście w lewym górnym rogu.

next_row#

next_row przenosi kursor do kolumny 1 w następnym wierszu na ekranie Brain.

Usage:
brain.screen.next_row()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Display two lines of text
brain.screen.print("Line 1")
brain.screen.next_row()
brain.screen.print("Line 2")

Zrzut ekranu IQ Brain przedstawia wiersz 1 w białym tekście w lewym górnym rogu oraz wiersz 2 bezpośrednio pod nim.

clear_row#

clear_row czyści pojedynczy wiersz tekstu na ekranie mózgu.

Usage:
brain.screen.clear_row(row, color)

Parametry

Opis

wiersz

Opcjonalnie. Wiersz do wyczyszczenia. Domyślnie jest to bieżący wiersz kursora.

kolor

Optional. The color to apply to the cleared row. Options include:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
You can also specify a custom color.

# Display text on two rows
brain.screen.print("This text stays")
brain.screen.next_row()
brain.screen.print("This disappears")

# Wait 3 seconds before clearing
# only the second row
wait(3, SECONDS)
brain.screen.clear_row()

# Turn the 5th row green
brain.screen.clear_row(5, Color.GREEN)

row#

row zwraca wiersz, w którym tekst zostanie wydrukowany jako liczba całkowita.

Usage:
brain.screen.row()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Set cursor to (3,2) and print 
# row number
brain.screen.set_cursor(3, 2)
brain.screen.print(brain.screen.row())

Zrzut ekranu IQ Brain z białą liczbą 3 wydrukowaną po lewej stronie ekranu, wyśrodkowaną pionowo, w wierszu 3 i kolumnie 2.

column#

column zwraca kolumnę, w której tekst będzie drukowany jako liczba całkowita.

Usage:
brain.screen.column()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Set cursor to (3,2) and print 
# column number
brain.screen.set_cursor(3, 2)
brain.screen.print(brain.screen.column())

Zrzut ekranu IQ Brain z białą liczbą 2 wydrukowaną po lewej stronie ekranu, wyśrodkowaną pionowo, w wierszu 3 i kolumnie 2.

get_string_width#

get_string_width zwraca szerokość ciągu znaków w pikselach jako liczbę całkowitą, tak jak będzie on wyświetlany na ekranie Braina. Szerokość zmienia się w zależności od długości ciągu znaków i bieżącej czcionki.

Usage:
brain.screen.get_string_width(string)

Parametry

Opis

string

Sznurek do pomiaru.

get_string_height#

get_string_height zwraca wysokość ciągu znaków w pikselach jako liczbę całkowitą, tak jak będzie on wyświetlany na ekranie Brain. Wysokość zmienia się w zależności od długości ciągu znaków i bieżącej czcionki.

Usage:
brain.screen.get_string_height(string)

Parametry

Opis

string

Sznurek do pomiaru.

Mutatory#

clear_screen#

clear_screen usuwa wszystkie rysunki i tekst z ekranu Mózgu.

Usage:
brain.screen.clear_screen(color)

Parametry

Opis

color

Optional. Sets the screen color. Options include:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
You can also specify a custom color.

# Draw a circle and clear it after 
# 2 seconds
brain.screen.draw_circle(80, 50, 20)
wait(2, SECONDS)
brain.screen.clear_screen()

# Turn the screen red
brain.screen.clear_screen(Color.RED)

Zrzut ekranu IQ Brain, na którym cały obszar do wydruku jest jasnoczerwony.

set_font#

set_font ustawia czcionkę używaną do wyświetlania tekstu na ekranie Brain. Ta czcionka będzie stosowana do całego tekstu drukowanego za pomocą print lub print_at. Domyślna czcionka na początku projektu to MONO20.

Usage:
brain.screen.set_font(fontname)

Parametr

Opis

fontname

Sets the font to one of the following:

  • MONO12
  • MONO15
  • MONO20
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
These options are shown below.

Zrzut ekranu VEX IQ Brain z serią cyfr i liter w czcionce Mono 12. Litera AZ znajduje się w jednym wierszu, rozciągającym się na całą szerokość ekranu. Lewy dolny róg wskazuje 26 znaków w poziomie i 9 wierszy.
MONO12

Ten sam zrzut ekranu co poprzedni, tym razem z czcionką Mono 15. Litery AT znajdują się w jednym wierszu, rozciągającym się na całą szerokość ekranu. Lewy dolny róg wskazuje 20 znaków w poziomie i 7 wierszy.
MONO15

Ten sam zrzut ekranu co poprzedni, tym razem z czcionką Mono 20. Litery AP znajdują się w jednym wierszu, rozciągającym się na całą szerokość ekranu. Lewy dolny róg wskazuje 16 znaków w poziomie i 5 wierszy.
MONO20

Ten sam zrzut ekranu co poprzedni, teraz z czcionką Mono 30. Cyfry od 1 do 9 i dodatkowe 0 znajdują się w jednym wierszu, rozciągającym się na całą szerokość ekranu. Lewy dolny róg wskazuje 3 wiersze.
MONO30

Ten sam zrzut ekranu, co poprzedni, tym razem z czcionką Mono 40. Cyfry od 1 do 8 znajdują się w drugim wierszu, rozciągającym się na całą szerokość ekranu.
MONO40

Ten sam zrzut ekranu, co poprzedni, tym razem z czcionką Mono 60. Na ekranie wyświetlana jest duża czcionka MN 60, zajmująca niemal całą górną połowę ekranu.
MONO60

Ten sam zrzut ekranu co poprzedni, teraz z czcionką Prop 20. Litery AW znajdują się w jednym wierszu, rozciągającym się na całą szerokość ekranu. Lewy dolny róg wskazuje 26 znaków w poziomie i 5 wierszy.
PROP20

Ten sam zrzut ekranu co poprzedni, teraz z czcionką Prop 30. Cyfry 1-9 powtarzają się dwukrotnie w jednym wierszu, obejmując całą szerokość ekranu. Lewy dolny róg wskazuje 18 znaków w poziomie i 3 wiersze.
PROP30

Ten sam zrzut ekranu, co poprzedni, teraz z czcionką Prop 40. Na górnym wierszu widnieje napis Prop 40, a na drugim 14 znaków i 2 wiersze.
PROP40

Ten sam zrzut ekranu, co poprzedni, tym razem z czcionką Prop 60. Na ekranie widnieje napis PROP 60 dużą czcionką, zajmującą niemal całą górną połowę ekranu.
PROP60

# Display two different fonts on 
# two separate lines
brain.screen.set_font(FontType.MONO20)
brain.screen.print("Mono Medium")
brain.screen.next_row()
brain.screen.set_font(FontType.PROP20)
brain.screen.print("Prop Medium")

Zrzut ekranu IQ Brain z białym tekstem w dwóch linijkach w lewym górnym rogu. W pierwszej linijce widnieje napis Mono Medium, a w drugiej bezpośrednio pod nim – Prop Medium, mniejszą czcionką.

set_pen_width#

set_pen_width ustawia grubość rysowanych linii i konturów kształtów.

Usage:
brain.screen.set_pen_width(width)

Parametr

Opis

width

Szerokość pióra w pikselach od 0 do 32.

# Draw two circles with
# different pen widths
brain.screen.draw_circle(40, 70, 20)
brain.screen.set_pen_width(5)
brain.screen.draw_circle(100, 70, 20)

Zrzut ekranu IQ Brain z dwoma białymi okręgami wydrukowanymi w dolnej połowie ekranu. Okręg po lewej stronie ma węższą obwódkę niż ten po prawej.

set_pen_color#

set_pen_color ustawia kolor tekstu, pikseli, linii i konturów kształtów.

Usage:
brain.screen.set_pen_color(color)

Parametr

Opis

color

Optional. The pen and font color to use. Options include:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
You can also specify a custom color.

# Draw two rectangles with
# different colors
brain.screen.draw_rectangle(100, 50, 10, 20)
brain.screen.set_pen_color(Color.BLUE)
brain.screen.draw_rectangle(50, 50, 10, 20)

Zrzut ekranu IQ Brain z dwoma małymi prostokątami narysowanymi w dolnej połowie ekranu. Prostokąt po lewej jest niebieski, a po prawej biały.

set_fill_color#

set_fill_color ustawia kolor wypełnienia używany podczas rysowania kształtów.

Usage:
brain.screen.set_fill_color(color)

Parametr

Opis

color

Optional. The fill color to use. Options include:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
You can also specify a custom color.

# Draw a yellow circle
brain.screen.set_fill_color(Color.YELLOW)
brain.screen.draw_circle(50, 50, 20)

Zrzut ekranu IQ Brain z jasnożółtym okręgiem otoczonym cienką białą obwódką narysowanym na lewej połowie ekranu.

set_origin#

set_origin ustawia punkt początkowy używany do rysowania i drukowania na podstawie współrzędnych na ekranie Brain. Domyślnie punktem początkowym jest lewy górny róg ekranu.

Usage:
brain.screen.set_origin(x, y)

Parametr

Opis

x

Nowa współrzędna x, którą należy ustawić jako początek, podana jako liczba całkowita od 0 do 159.

y

Nowa współrzędna y, którą należy ustawić jako początek, podana jako liczba całkowita od 0 do 107.

# Draw a line with the origin set to (50, 50)
brain.screen.set_origin(50, 50)
brain.screen.draw_line(1, 1, 159, 107)

Zrzut ekranu IQ Brain z linią zaczynającą się nieco na lewo od środka i rozciągającą się ukośnie w dół w prawo, w kierunku prawego dolnego rogu ekranu.

Rysować#

draw_pixel#

draw_pixel rysuje jeden piksel na wybranej współrzędnej x i y, używając bieżącego koloru pióra.

Usage:
brain.screen.draw_pixel(x, y)

Parametr

Opis

x

Współrzędna x, w której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 159.

y

Współrzędna y, na której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 107.

# Draw one pixel at the center
# of the screen
brain.screen.draw_pixel(80, 50)

Zrzut ekranu IQ Brain z małą białą kropką na środku ekranu.

draw_line#

draw_line rysuje linię od pierwszej współrzędnej ekranu (x1, y1) do drugiej współrzędnej ekranu (x2, y2) używając bieżącej szerokości pióra i koloru pióra.

Współrzędne x i y używają domyślnego początku (0, 0), chyba że ustawiono inny początek za pomocą set_origin.

Usage:
brain.screen.draw_line(x1, y1, x2, y2)

Parametr

Opis

x1

Początkowa współrzędna x linii, podana jako liczba całkowita od 0 do 159.

y1

Początkowa współrzędna y linii, podana jako liczba całkowita od 0 do 107.

x2

Końcowa współrzędna x linii, podana jako liczba całkowita od 0 do 159.

y2

Końcowa współrzędna y linii, podana jako liczba całkowita od 0 do 107.

# Draw a line from the top left to
# bottom right of the screen
brain.screen.draw_line(0, 0, 159, 107)

Zrzut ekranu IQ Brain z białą, ukośną linią biegnącą od lewego górnego rogu do prawego dolnego rogu.

draw_rectangle#

draw_rectangle rysuje prostokąt z lewym górnym rogiem w wybranej współrzędnej (x, y) i rozmiarem określonym przez podaną szerokość i wysokość, mierzone w pikselach. Kontur prostokąta jest rysowany z użyciem bieżącej szerokości pisaka i koloru pisaka. Wnętrze jest wypełniane bieżącym kolorem wypełnienia, chyba że zostanie użyty opcjonalny parametr color.

Współrzędne x i y używają domyślnego początku (0,0), chyba że ustawiono inny początek za pomocą set_origin.

Usage:
brain.screen.draw_rectangle(x, y, width, height, color)

Parametr

Opis

x

Współrzędna x lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 159.

y

Współrzędna y lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 107.

width

Szerokość prostokąta w pikselach.

height

Wysokość prostokąta w pikselach.

color

Optional. The fill color of the rectangle. Options include:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
You can also specify a custom color.

# Draw a red rectangle on the screen
brain.screen.draw_rectangle(25, 25, 100, 50, Color.RED)

Zrzut ekranu IQ Brain z dużym czerwonym prostokątem otoczonym cienką białą ramką, narysowanym niemal na środku ekranu.

draw_circle#

draw_circle rysuje okrąg o środku w wybranej współrzędnej (x, y) i rozmiarze określonym przez podany promień, mierzony w pikselach. Kontur okręgu jest rysowany z użyciem bieżącej szerokości pisaka i koloru pisaka. Wnętrze jest wypełniane bieżącym kolorem wypełnienia, chyba że zostanie użyty opcjonalny parametr color.

Współrzędne x i y używają domyślnego początku (0,0), chyba że ustawiono inny początek za pomocą set_origin.

Usage:
brain.screen.draw_circle(x, y, radius, color)

Parametr

Opis

x

Współrzędna x środka okręgu, podana jako liczba całkowita od 0 do 159.

y

Współrzędna y środka okręgu, podana jako liczba całkowita od 0 do 107.

radius

Promień okręgu w pikselach.

color

Optional. The fill color of the circle. Options include:

  • Color.BLACK
  • Color.BLUE
  • Color.BLUE_GREEN
  • Color.BLUE_VIOLET
  • Color.GREEN
  • Color.ORANGE
  • Color.PURPLE
  • Color.RED
  • COLOR.RED_ORANGE
  • Color.RED_VIOLET
  • Color.VIOLET
  • Color.WHITE
  • Color.YELLOW
  • Color.YELLOW_GREEN
  • Color.YELLOW_ORANGE
You can also specify a custom color.

# Draw a green circle on the screen
brain.screen.draw_circle(80, 50, 20, Color.GREEN)

Zrzut ekranu IQ Brain z jednolitym zielonym okręgiem otoczonym cienką białą obwódką na środku ekranu.

set_clip_region#

set_clip_region definiuje prostokątny obszar na ekranie, w którym będą wyświetlane wszystkie rysunki i tekst. Zawartość spoza tego obszaru nie będzie wyświetlana.

Usage:
brain.screen.set_clip_region(x, y, width, height)

Parametr

Opis

x

Współrzędna x lewego górnego rogu obszaru klipu, podana jako liczba całkowita lub zmiennoprzecinkowa od 0 do 159.

y

Współrzędna y lewego górnego rogu obszaru klipu, podana jako liczba całkowita lub zmiennoprzecinkowa od 0 do 107.

width

Szerokość obszaru przycinania w pikselach.

height

Wysokość obszaru przycinania w pikselach.

# Restrict text and drawings to a specific region
brain.screen.set_clip_region(0, 0, 120, 120)
brain.screen.draw_rectangle(60, 60, 100, 100, Color.RED)
brain.screen.print_at("Cut off!", x=60, y=60)

Zrzut ekranu IQ Brain z białym tekstem w pobliżu środka ekranu, na którym widnieje napis Cut of (Wytnij), a bezpośrednio pod nim znajduje się czerwony kwadrat, pokazujący, co zostanie wydrukowane w obszarze klipu.

render#

Polecenie render włącza podwójne buforowanie ekranu Brain. Po wywołaniu polecenia rysowania (takie jak tekst, kształty czy obrazy) nie będą już wyświetlane od razu w całym projekcie. Zamiast tego aktualizacje będą widoczne dopiero po ponownym użyciu polecenia render Umożliwia to płynniejsze i bardziej kontrolowane odświeżanie ekranu, ale oznacza, że ​​nic nie będzie widoczne, dopóki polecenie render nie zostanie użyte.

Usage:
brain.screen.render()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Render text after moving
brain.screen.render()
brain.screen.print("Render later...")
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
brain.screen.render()