Képernyő#

Bevezetés#

A Képernyő metódusok szabályozzák, hogy az IQ (2. generációs) agy hogyan jelenít meg szöveget, számokat és grafikákat a beépített képernyőjén.

Rajzolás esetén az agy felbontása 160 x 108 pixel.

Ez az oldal brain értéket használja példaként a Brain névre. Szükség szerint cserélje le a saját konfigurált névre.

Az alábbiakban felsoroljuk az összes módszert:

Kurzor nyomtatása – Szöveg elhelyezése és nyomtatása.

  • print — Szöveget, számokat vagy változóértékeket nyomtat ki az aktuális kurzorpozícióban.

  • set_cursor — A kurzort egy adott sorra és oszlopba mozgatja.

  • next_row — A kurzort a következő sor 1. oszlopába mozgatja.

  • clear_row — Töröl egy sornyi szöveget.

  • row — Visszaadja azt a sort, ahová a szöveg ki lesz nyomtatva.

  • column — Visszaadja azt az oszlopot, ahová a szöveg ki lesz nyomtatva.

  • print_at — Szöveget, számokat vagy változóértékeket nyomtat ki egy adott x és y koordinátán.

  • get_string_width — Visszaadja egy karakterlánc szélességét pixelben az aktuális betűtípus használatával.

  • get_string_height — Visszaadja egy karakterlánc magasságát pixelben az aktuális betűtípus használatával.

Mutátorok – Képernyőbeállítások, színek és rajzolási viselkedés módosítása.

  • clear_screen — Törli a képernyőt az összes rajztól és szövegtől.

  • set_font — Beállítja a nyomtatott szöveg betűtípusát.

  • set_pen_width — Beállítja a rajzolt vonalak és alakzatok körvonalainak vastagságát.

  • set_pen_color — Beállítja a szöveg, a képpontok, a vonalak és az alakzatok körvonalainak színét.

  • set_fill_color — Beállítja a rajzolt alakzatok és a nyomtatott szöveg hátterének kitöltési színét.

  • set_origin — Beállítja a koordináta alapú nyomtatáshoz és rajzoláshoz használt origót.

Rajzolás – Grafikák hozzáadása a képernyőhöz.

  • draw_pixel — Egy pixelt rajzol egy koordinátán.

  • draw_line — Két pont között húz egy vonalat.

  • draw_rectangle — Téglalapot rajzol.

  • draw_circle — Kör rajzolása.

  • set_clip_region — Korlátozza a rajzok és szövegek megjelenési helyét.

  • render — Csak meghívásakor frissíti az Agy képernyőjét szöveggel és rajzokkal.

Kurzor nyomtatása#

print#

print parancs szöveget, számokat vagy változóértékeket nyomtat ki a Brain képernyőn az aktuális kurzorpozíció és betűtípus pozícióban.

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

Paraméterek

Leírás

text

A képernyőn kinyomtatandó szöveg, szám vagy változó értéke.

precision

Opcionális. A számok megjelenítésekor megjelenítendő tizedesjegyek száma. Ezt kulcsszó argumentumként kell megadni, pl.:precision=3Az alapértelmezett érték 2.

opaque

Opcionális. opaque=True — A szöveg háttere alapértelmezés szerint az aktuális kitöltőszín vagy fekete lesz. opaque=False (alapértelmezett) — A szöveg háttere meg fog egyezni a képernyő háttérszínével.

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

A VEX IQ Brain képernyőjének képernyőképén az első sorban fehér szöveggel a „Helló, Robot!” felirat olvasható.

# 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 parancs a kurzort a Brain képernyő egy adott sorára és oszlopára mozgatja. A következő print hívás ezen a helyen kezdi meg a nyomtatást. Az, hogy hány sor és oszlop fér el kényelmesen, a kiválasztott betűtípustól függ.

Az egyszélességű betűtípusok azonos szélességű karaktereket használnak, így a szöveg elhelyezése egységes. Ezzel szemben az arányos betűtípusok karakterszélessége eltérő, így egyes betűk több helyet foglalnak el, mint mások. Azonban a használt típustól függetlenül set_cursor a kurzort a sor- és oszlopméret, nem pedig a betűstílus alapján pozicionálja. A betűméret a set_font segítségével állítható be.

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

Paraméterek

Leírás

row

A sor, ahová a kurzort át kell helyezni.

column

Az oszlop, amelyre a kurzort át kell helyezni.

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

Az IQ Brain képernyőképén a bal felső sarokban fehér szöveggel 23.19 olvasható.

next_row#

next_row parancs a kurzort az Agy képernyő következő sorának 1. oszlopába mozgatja.

Usage:
brain.screen.next_row()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

Az IQ Brain képernyőképén az 1. sor látható fehér szöveggel a bal felső sarokban, a 2. sor pedig közvetlenül alatta.

clear_row#

clear_row parancs egyetlen sornyi szöveget töröl a Brain képernyőn.

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

Paraméterek

Leírás

sor

Opcionális. A törlendő sor. Az alapértelmezett érték az aktuális kurzorsor.

szín

Opcionális. A kiürített sorra alkalmazandó szín. Lehetőségek:

  • 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
Megadhat egy egyéni színt is.

# 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#

A row visszaadja azt a sort, ahová a szöveg egész számként kerül kiírásra.

Usage:
brain.screen.row()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

Az IQ Brain képernyőjének képernyőképe, amelyen egy fehér 3-as szám látható a képernyő bal szélén, függőlegesen középre igazítva, a 3. sor 2. oszlopának pozíciójában.

column#

A column visszaadja azt az oszlopot, ahová a szöveg egész számként kerül kiírásra.

Usage:
brain.screen.column()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

Az IQ Brain képernyőjének képernyőképe, amelyen egy fehér 2-es szám látható a képernyő bal szélén, függőlegesen középre igazítva, a 3. sor 2. oszlopának pozíciójában.

get_string_width#

get_string_width Visszaadja egy karakterlánc szélességét pixelekben, egész számként, ahogyan az a Brain képernyőjén megjelenne. A szélesség a karakterlánc hosszától és a jelenlegi betűtípustól függően változik.

Usage:
brain.screen.get_string_width(string)

Paraméterek

Leírás

string

A mérendő húr.

get_string_height#

get_string_height Visszaadja egy karakterlánc magasságát pixelben, egész számként, ahogyan az a Brain képernyőjén megjelenne. A magasság a karakterlánc hosszától és a jelenlegi betűtípustól függően változik.

Usage:
brain.screen.get_string_height(string)

Paraméterek

Leírás

string

A mérendő húr.

Mutátorok#

clear_screen#

clear_screen parancs törli az összes rajzot és szöveget az Agy képernyőjéről.

Usage:
brain.screen.clear_screen(color)

Paraméterek

Leírás

color

Opcionális. Beállítja a képernyő színét. Lehetőségek:

  • 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
Megadhat egy egyéni színt is.

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

Az IQ Brain képernyőjének képernyőképe, amelyen a teljes nyomtatható terület élénkpiros.

set_font#

set_font paraméterrel beállítható a Brain képernyőn megjelenő szöveg betűtípusa. Ez a betűtípus minden, a print vagy az print_at paranccsal kinyomtatott szövegre érvényes. A projekt kezdetén az alapértelmezett betűtípus a MONO20.

Usage:
brain.screen.set_font(fontname)

Paraméter

Leírás

fontname

A betűtípust a következők egyikére állítja be:

  • MONO12
  • MONO15
  • MONO20
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Ezek a beállítások az alábbiakban láthatók.

A VEX IQ Brain képernyőjének képernyőképe, amelyen Mono 12 betűtípussal írt számok és betűk láthatók. Az AZ betűk egy sorban helyezkednek el, a képernyő teljes szélességében. A bal alsó sarok 26 karaktert és 9 sort jelöl.
MONO12

Ugyanaz a képernyőkép, mint az előző, most Mono 15 betűtípussal. Az AT betűk egy sorban vannak, a képernyő teljes szélességében. A bal alsó sarok 20 karaktert és 7 sort jelöl.
MONO15

Ugyanaz a képernyőkép, mint az előző, most Mono 20 betűtípussal. Az AP betűk egy sorban vannak, a képernyő teljes szélességében. A bal alsó sarok 16 karaktert és 5 sort jelez.
MONO20

Ugyanaz a képernyőkép, mint az előző, most Mono 30 betűtípussal. Az 1-től 9-ig terjedő számok és egy plusz 0 egy sorban vannak, a képernyő teljes szélességében. A bal alsó sarok 3 sort jelöl.
MONO30

Ugyanaz a képernyőkép, mint az előző, most Mono 40 betűtípussal. Az 1-től 8-ig terjedő számok a második sorban találhatók, a képernyő teljes szélességében.
MONO40

Ugyanaz a képernyőkép, mint az előző, most Mono 60 betűtípussal. A képernyőn az MN 60 látható nagy betűtípussal, amely a képernyő felső felét majdnem teljesen kitölti.
MONO60

Ugyanaz a képernyőkép, mint az előző, most Prop 20 betűtípussal. Az AW betűk egy sorban vannak, a képernyő teljes szélességében. A bal alsó sarok 26 karaktert és 5 sort jelez.
PROP20

Ugyanaz a képernyőkép, mint az előző, most Prop 30 betűtípussal. Az 1-9 számok kétszer ismétlődnek egy sorban, a képernyő teljes szélességében. A bal alsó sarok 18 karaktert és 3 sort jelöl.
PROP30

Ugyanaz a képernyőkép, mint az előző, most Prop 40 betűtípussal. A képernyő felső sorban a Prop 40 felirat látható, a második sorban pedig 14 karakter és 2 sor látható.
PROP40

Ugyanaz a képernyőkép, mint az előző, most Prop 60 betűtípussal. A képernyőn nagy betűtípussal olvasható a PROP 60, amely a képernyő felső felét majdnem teljesen kitölti.
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")

Az IQ Brain képernyőjének képernyőképe, két sorban fehér szöveggel a bal felső sarokban. Az első sorban a Mono Medium (Egyszínű Közepes) felirat olvasható, a közvetlenül alatta lévő második sorban pedig kisebb betűtípussal a Prop Medium (Prop Közepes).

set_pen_width#

set_pen_width beállítja a rajzolt vonalak és alakzatok körvonalainak vastagságát.

Usage:
brain.screen.set_pen_width(width)

Paraméter

Leírás

width

A toll szélessége pixelben, 0 és 32 között.

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

Az IQ Brain képernyőjének képernyőképe, két fehér körrel a képernyő alsó felén. A bal oldali kör keskenyebb szegéllyel van rajzolva, mint a jobb oldali.

set_pen_color#

set_pen_color beállítja a szöveg, a képpontok, a vonalak és az alakzatok körvonalainak színét.

Usage:
brain.screen.set_pen_color(color)

Paraméter

Leírás

color

Opcionális. A használandó toll és betűtípus színe. Lehetőségek:

  • 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
Megadhat egy egyéni színt is.

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

Az IQ Brain képernyőjének képernyőképe, két kis téglalappal a képernyő alsó felén. A bal oldali téglalap kék, a jobb oldali pedig fehér.

set_fill_color#

set_fill_color beállítja az alakzatok rajzolásakor használt kitöltőszínt.

Usage:
brain.screen.set_fill_color(color)

Paraméter

Leírás

color

Opcionális. A használandó kitöltőszín. Lehetőségek:

  • 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
Megadhat egy egyéni színt is.

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

Az IQ Brain képernyőjének képernyőképe, amelyen egy élénk sárga kör látható vékony fehér szegéllyel a képernyő bal felén.

set_origin#

set_origin beállítja a rajzoláshoz és koordináta alapú nyomtatáshoz használt origót a Brain képernyőn. Alapértelmezés szerint az origó a képernyő bal felső sarka.

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

Paraméter

Leírás

x

Az origóként beállítandó új x koordináta, 0 és 159 közötti egész számként megadva.

y

Az origóként beállítandó új y koordináta, 0 és 107 közötti egész számként megadva.

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

Egy képernyőkép egy IQ Brain képernyőről, amelyen egy while vonal kezdődik kissé balra a középponttól, és átlósan lefelé halad jobbra a képernyő jobb alsó sarka felé.

Döntetlen#

draw_pixel#

draw_pixel függvény egy pixelt rajzol a kiválasztott x és y koordinátán az aktuális toll szín használatával.

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

Paraméter

Leírás

x

Az x koordináta, ahová a képpontot kirajzoljuk, 0 és 159 közötti egész számként megadva.

y

Az y koordináta, ahová a képpontot kirajzoljuk, 0 és 107 közötti egész számként megadva.

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

Az IQ Brain képernyőjének képernyőképe, egy apró fehér ponttal a képernyő közepén.

draw_line#

draw_line függvény egy vonalat húz az első képernyő-koordinátától ( (x1, y1) a második képernyő-koordinátáig (x2, y2) a jelenlegi toll szélessége és toll színe paraméterek felhasználásával.

Az x és y koordináták az alapértelmezett (0, 0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.

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

Paraméter

Leírás

x1

A vonal kezdő x koordinátája, 0 és 159 közötti egész számként megadva.

y1

A vonal kezdő y koordinátája, 0 és 107 közötti egész számként megadva.

x2

A vonal végpontjának x koordinátája, 0 és 159 közötti egész számként megadva.

y2

A vonal végső y koordinátája, 0 és 107 közötti egész számként megadva.

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

Az IQ Brain képernyőjének képernyőképe, amelyen egy fehér átlós vonal húzódik a bal felső saroktól a jobb alsó sarokig.

draw_rectangle#

draw_rectangle függvény egy téglalapot rajzol, amelynek bal felső sarka a kiválasztott (x, y) koordinátán van, a mérete pedig a megadott szélesség és magasság által meghatározott, pixelben mért értékek alapján. A téglalap körvonalát az aktuális pen width és pen color paraméterek segítségével rajzolja meg. A belsejét az aktuális fill color tölti ki, kivéve, ha az opcionális color paramétert használjuk.

Az x és y koordináták az alapértelmezett (0,0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.

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

Paraméter

Leírás

x

A téglalap bal felső sarkának x koordinátája, 0 és 159 közötti egész számként megadva.

y

A téglalap bal felső sarkának y koordinátája, 0 és 107 közötti egész számként megadva.

width

A téglalap szélessége pixelben.

height

A téglalap magassága pixelben.

color

Opcionális. A téglalap kitöltési színe. Lehetőségek:

  • 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
Megadhat egy egyéni színt is.

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

Az IQ Brain képernyőjének képernyőképe, amelyen egy nagy piros téglalap látható, vékony fehér szegéllyel, majdnem a képernyő közepére igazítva.

draw_circle#

draw_circle függvény egy kört rajzol, amelynek középpontja a kiválasztott (x, y) koordinátán van, és a méretet a megadott sugár határozza meg, mindezt pixelben mérve. A kör körvonalát az aktuális pen width és pen color paraméterek segítségével rajzolja meg. A belső teret az aktuális fill color tölti ki, kivéve, ha az opcionális color paramétert használjuk.

Az x és y koordináták az alapértelmezett (0,0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.

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

Paraméter

Leírás

x

A kör középpontjának x koordinátája, 0 és 159 közötti egész számként megadva.

y

A kör középpontjának y koordinátája, 0 és 107 közötti egész számként megadva.

radius

A kör sugara, pixelben.

color

Opcionális. A kör kitöltési színe. Lehetőségek:

  • 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
Megadhat egy egyéni színt is.

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

Az IQ Brain képernyőjének képernyőképe, amelyen egy tömör zöld kör látható vékony fehér szegéllyel a képernyő közepén.

set_clip_region#

set_clip_region egy téglalap alakú területet határoz meg a képernyőn, ahová az összes rajz és szöveg be lesz zárva. Az ezen a területen kívüli tartalom nem jelenik meg.

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

Paraméter

Leírás

x

A klip régió bal felső sarkának x koordinátája, 0 és 159 közötti egész számként vagy lebegőpontos számként megadva.

y

A klip régió bal felső sarkának y koordinátája, 0 és 107 közötti egész számként vagy lebegőpontos számként megadva.

width

A klipterület szélessége pixelben.

height

A klipterület magassága pixelben.

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

Az IQ Brain képernyőjének képernyőképe, amelyen a képernyő közepén fehér „Kivágás” felirat látható, alatta pedig egy tömör piros négyzet mutatja, hogy mi nyomtatódik a klipterületre.

render#

render dupla pufferelést engedélyez az Agy képernyőjén. Hívás után a rajzolási parancsok (például szöveg, alakzatok vagy képek) nem jelennek meg azonnal a projekt többi részében. Ehelyett a frissítések csak akkor jelennek meg, ha render at újra használjuk. Ez simább és kontrolláltabb képernyőfrissítéseket tesz lehetővé, de azt jelenti, hogy semmi sem lesz látható, amíg render nem használjuk.

Usage:
brain.screen.render()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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