Ekran#

giriiş#

screen sınıfı, brain temel sınıfından türetilmiştir. V5 Beyninin dokunmatik ekranında metin, sayı ve grafikleri nasıl gösterdiğini ve dokunmatik girişe nasıl yanıt verdiğini kontrol eder.

Varsayılan olarak, Brain’e yazdırmak için kullanılan yazı tipi 12 satır ve 48 sütundan oluşan tek aralıklı küçük yazı tipidir.

Çizim için, Brain’in çözünürlüğü 480 x 240 pikseldir.

Toplamda 12 satır ve 48 sütundan oluşan düzeni gösteren kırmızı ızgara çizgilerine sahip V5 Beyin ekranı. Piksel boyutları 479 genişlik ve 239 yüksekliktedir. Sol üst köşe (0,0) piksel ve 1. satır, 1. sütundan başlarken, sağ alt köşe (479, 239) piksel ve 12. satır, 48. sütunda sona erer.

Erişim#

screen sınıfına şu yollarla erişilebilir:

Brain.Screen

Notlar#

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

  • Projeler tek bir global Brain nesnesi kullanır, bu nedenle ekran fonksiyonları Brain.Screen kullanılarak çağrılır.

Örnek#

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

Üye Fonksiyonları#

screen sınıfı aşağıdaki üye fonksiyonlarını içerir:

  • print — Biçimlendirilmiş metni, sayıları veya Boolean değerlerini Beyin ekranına yazdırır.

  • setCursor — Metin imlecini belirtilen satır ve sütuna taşır.

  • newLine — Geçerli satırın kalanını temizler ve imleci bir sonraki satıra taşır.

  • clearLine — Geçerli satırın kalan kısmını temizler veya belirtilen satırı temizler.

  • row — Metnin yazdırılacağı satırı döndürür.

  • column — Metnin yazdırılacağı sütunu döndürür.

  • getStringHeight — Geçerli yazı tipini kullanarak bir dizenin piksel cinsinden yüksekliğini döndürür.

  • getStringWidth — Geçerli yazı tipini kullanarak bir dizenin piksel cinsinden genişliğini döndürür.

  • printAt — Biçimlendirilmiş metni x, y piksel konumunda yazdırır.

  • clearScreen — Beyin ekranındaki tüm çizimleri ve metinleri temizler.

  • setFont — Ekranda yazdırmak için kullanılan yazı tipini ayarlar.

  • setPenWidth — Çizilen çizgilerin ve şekil ana hatlarının kalınlığını ayarlar.

  • setPenColor — Metnin, piksellerin, çizgilerin ve şekil ana hatlarının rengini ayarlar.

  • setFillColor — Çizilen şekillerin ve yazdırılan metin arka planlarının dolgu rengini ayarlar.

  • setOrigin — Ekran koordinatları için kullanılan başlangıç ​​noktasını ayarlar.

  • setClipRegion — Ekran çıktısını dikdörtgen bir bölgeyle sınırlandırır.

  • drawPixel — Bir koordinatta bir piksel çizer.

  • drawLine — İki nokta arasında bir çizgi çizer.

  • drawRectangle — Belirtilen boyutta bir dikdörtgeni x, y konumunda çizer.

  • drawCircle — Belirtilen yarıçapla bir x, y konumunda bir daire çizer.

  • drawImageFromFile — SD kart dosyasından ekrana bir görüntü çizer.

  • render — Çift tamponlamayı etkinleştirir veya arka tamponu ekrana işler.

  • pressingbasıyor — Ekranın şu anda basılı olup olmadığını döndürür.

  • xPosition — En son ekran basımının x koordinatını döndürür.

  • yPosition — En son ekran basımının y koordinatını döndürür.

  • pressed — Ekrana basıldığında çalıştırılacak bir geri çağırma fonksiyonu kaydeder.

  • released — Ekran basıldıktan sonra bırakıldığında çalıştırılacak bir geri çağırma fonksiyonu kaydeder.

Herhangi bir screen üye fonksiyonunu çağırmadan önce, aşağıda gösterildiği gibi bir brain örneği oluşturulmalıdır:

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

print#

V5 Brain ekranında metin, sayı veya Boolean değerleri görüntüler.

Available Functions

1 — Dize değişmezleri veya salt okunur C tarzı dizeler kullanarak biçimlendirilmiş metin yazdırır.

void print(
    const char* format,
    ... );

2 — Değiştirilebilir karakter dizileri kullanarak biçimlendirilmiş metin yazdırır.

void print(
    char* format,
    ... );

Parameters

Parametre

Tip

Tanım

format

const char*

Bir dize değişmezi veya salt okunur C stili dize olarak sağlanan bir biçim dizesi (örneğin, “Score: %d”).

format

char*

Değiştirilebilir bir karakter dizisi olarak sağlanan bir biçim dizesi.

…

Biçim dizesine virgülle ayrılmış olarak eklenen bir veya daha fazla ek değer.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Output begins at the current cursor position on the screen.

  • Yazdırılan metin, ekran yazı kullanır.

  • Printed text uses the current pen color.

  • print ile yazdırılan metin her zaman bir arka planla yazdırılır ve arka plan rengi, geçerli dolgu rengi tarafından belirlenir.

  • Biçim dizesi kullanılırken, geçirilen değerlerin sayısı ve türleri, dizedeki biçim belirleyicilerle eşleşmelidir.

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

V5 Beyninin ekran görüntüsü, ekranın sol üst köşesinde beyaz yazıyla "Merhaba, Robot!" yazısının basılı olduğunu gösteriyor.

setCursor#

İmleci V5 Beyin ekranındaki belirli bir satır ve sütuna taşır. Sonraki print çağrısı, yazdırmaya o konumdan başlayacaktır.

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

Parameters

Parametre

Tip

Tanım

row

int32_t

İmleci taşımak istediğiniz satır.

col

int32_t

İmleci taşımak istediğiniz sütun.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • print kullanılırken sonraki metin çıktısının nerede başlayacağını etkiler.

  • Satırlar ve sütunlar şu anda ayarlanmış ekran yazı tipine göre belirlenir.

  • Varsayılan yazı tipi (mono20) 12 satır ve 48 sütun kullanır.

  • setCursor çağrısı yalnızca sonraki metin çıktısının konumunu etkiler.

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

Ekranın ortasına yakın üst kısmında, o konumda 3. Satır 12. Sütunun yazdırıldığını gösteren V5 Beyninin ekran görüntüsü.

newLine#

İmleci Beyin ekranındaki bir sonraki satırın başına taşır.

Available Functions
void newLine();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • İmleç bir cümlenin ortasındaysa, newLine komutu imleçten sonraki satırın geri kalanını temizleyip sonraki satıra geçecektir.

  • newLineçağrısından sonra imleç, bir sonraki satırın ilk sütununa konumlandırılır.

  • İmleç konumu ve satır numaralandırması setCursor kullanılarak ayarlanır.

Examples
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

V5 Beyin ekranının sol üst köşesinde iki satır beyaz metin gösteren bir ekran görüntüsü. Üst satırda Satır 1, hemen altındaki ikinci satırda ise Satır 2 yazıyor.

clearLine#

V5 Brain ekranındaki bir satırdaki metni siler.

Available Functions

1 — İmleç konumundan itibaren geçerli satırın geri kalanını temizler.

void clearLine();

2 — Belirtilen satırı, şu anda yapılandırılmış dolgu rengi kullanarak temizler.

void clearLine(
    int number );

3 — Belirtilen satırı önceden tanımlanmış veya özel renk nesnesi kullanarak temizler.

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

4 — Belirtilen satırı onaltılık renk değeri kullanarak temizler.

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

5 — Belirtilen satırı bir renk tonu değeri kullanarak temizler.

void clearLine(
    int number,
    int hue );

Parameters

Parametre

Tip

Tanım

number

int

Silinecek satır numarası. Satır numaralandırması 1 başlar.

color

const color&

color nesnesi kullanarak satırı temizler. Önceden tanımlanmış renkler şunlardır:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Bu ayrıca özel bir renk nesnesi de kullanabilir.

color

const char*

Onaltılık renk değeri kullanarak satırı temizler (örneğin, “#000000”).

hue

int

Renk çemberi üzerindeki dereceleri temsil eden 0–359aralığındaki tam sayı ton değerini kullanarak satırı temizler.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Bir satırı temizlemek, mevcut imleç konumunu değiştirmez.

  • İmleç konumu ve satır numaralandırması setCursor kullanılarak ayarlanır.

  • hue parametre değeri, aşağıda gösterildiği gibi dairesel bir renk çemberine dayanmaktadır; burada değerler çember üzerindeki dereceleri temsil eder (örneğin, 0°’ye yakın kırmızı, 120°’ye yakın yeşil ve 240°’ye yakın mavi).

0 ile 359 arasındaki renk aralığını gösteren bir renk çemberi; burada kırmızı 0, yeşil 120 ve mavi 240'tır.

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 Brain ekranında metnin yazdırılacağı satırı döndürür.

Available Functions
int32_t row();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Metnin yazdırılacağı satırı temsil eden int32_t değerini döndürür.

Satır numaralandırması 1’den başlar.

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

  • Döndürülen değer, bir sonraki yazdırılacak çıktının nerede görüneceğini gösterir.

  • Metin yazdırıldığında veya setCursor çağrıldığında satır değeri değişir.

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

Ekranın sol üst köşesinde, 3. satır 12. sütun konumunda beyaz renkte 3 yazısını gösteren V5 Beyin ekranının bir ekran görüntüsü.

column#

V5 Brain ekranında metnin yazdırılacağı sütunu döndürür.

Available Functions
int32_t column();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Metnin yazdırılacağı sütunu temsil eden int32_t değerini döndürür.

Sütun numaralandırması 1’den başlar.

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

  • Döndürülen değer, bir sonraki yazdırılacak çıktının nerede görüneceğini gösterir.

  • Sütun değeri, metin yazdırıldığında veya setCursor çağrıldığında değişir.

Examples
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

Ekranın sol üst köşesinde, 3. satır 15. sütun konumunda beyaz renkte 15 yazısını gösteren V5 Beyin ekranının bir ekran görüntüsü.

getStringHeight#

V5 Brain ekranında görüntülendiğinde bir metin dizisinin yüksekliğini piksel cinsinden döndürür.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parametre

Tip

Tanım

cstr

const char*

Ölçülecek metin, C stili bir dize olarak sağlanır (örneğin, “Hello”).

Return Values

Beyin ekranında görüntülendiğinde dizenin piksel cinsinden yüksekliğini temsil eden int32_t değerini döndürür.

Notes
  • Döndürülen yükseklik, şu anda seçili olan ekran yazı bağlıdır.

  • Bu fonksiyon, dizeyi ekrana çizmeden ölçer.

  • Döndürülen yükseklik, metnin yazdırıldığında nasıl görüneceğini yansıtır.

getStringWidth#

V5 Brain ekranında görüntülendiğinde bir dizenin piksel cinsinden genişliğini döndürür.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parametre

Tip

Tanım

cstr

const char*

Ölçülecek metin, C stili bir dize olarak sağlanır (örneğin, “Hello”).

Return Values

Beyin ekranında görüntülendiğinde dizenin piksel cinsinden genişliğini temsil eden int32_t değerini döndürür.

Notes
  • The returned width depends on the currently selected screen font.

  • Bu fonksiyon, dizeyi ekrana çizmeden ölçer.

  • Döndürülen genişlik, metnin yazdırıldığında nasıl görüneceğini yansıtır.

printAt#

V5 Brain ekranında belirli bir koordinatta metin, sayı veya Boolean değerleri yazdırır.

Available Functions

1 — Belirtilen piksel konumunda biçimlendirilmiş çıktı yazdırır.

void printAt(
    int32_t    x,
    int32_t    y,
    const char* format,
    ... );

2 — Belirtilen piksel konumunda biçimlendirilmiş çıktı yazdırır ve metin arka planının opak mı yoksa saydam mı olacağını ayarlar.

void printAt(
    int32_t    x,
    int32_t    y,
    bool       bOpaque,
    const char* format,
    ... );

Parameters

Parametre

Tip

Tanım

x

int32_t

Ekranın başlangıç ​​noktasına göre, yazdırma işleminin gerçekleştirileceği x konumu.

y

int32_t

Ekranın başlangıç ​​noktasına göre, yazdırma işleminin yapılacağı y-konumu.

bOpaque

bool

Yazdırılan metnin opak mı yoksa saydam mı çizileceğini kontrol eder:

  • true — Yazdırılan metnin arka planı mevcut dolgu rengi kullanılarak doldurulur.
  • false — Metin saydam olarak çizilir ve arka plan doldurulmaz.

format

const char*

Ekranda neyin yazdırılacağını kontrol eden bir format dizesi (örneğin, “Score: %d”).

…

Biçim dizesine virgülle ayrılmış olarak eklenen bir veya daha fazla ek değer.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • x ve y koordinatları, setOrigin kullanılarak değiştirilebilen mevcut ekran orijinine göre belirlenir.

  • Yazdırılan metin, ekran yazı kullanır.

  • Printed text uses the current pen color.

  • Biçim dizesi kullanılırken, geçirilen değerlerin sayısı ve türleri, dizedeki biçim belirleyicilerle eşleşmelidir.

Examples
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

Ekranın ortasına yerleştirilmiş beyaz metinle "Merkezle" yazan V5 Beyin ekranının bir ekran görüntüsü.

clearScreen#

Beyin ekranındaki tüm çizimleri ve metinleri siler ve imleç konumunu 1. satır, 1. sütuna sıfırlar.

Available Functions

1 — Ekranı siyaha çevirir.

void clearScreen();

2 — Önceden tanımlanmış veya özel renk nesnesi kullanarak ekranı temizler.

void clearScreen(
    const color& color );

3 — Ekranı onaltılık renk değeri kullanarak temizler.

void clearScreen(
    const char* color );

4 — Ekranı bir renk tonu değeri kullanarak temizler.

void clearScreen(
    int hue );

Parameters

Parametre

Tip

Tanım

color

const color&

Ekranı color nesnesi kullanarak temizler. Önceden tanımlanmış renkler şunlardır:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Bu ayrıca özel renk nesnesi de kullanabilir.

color

const char*

Ekranı, bir dize olarak temsil edilen onaltılık renk değeri kullanarak temizler (örneğin, “#000000”).

hue

int

Ekranı, renk çemberi üzerindeki dereceleri temsil eden 0–359aralığındaki bir tamsayı renk tonu değeri kullanarak temizler.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • hue parametre değeri, aşağıda gösterildiği gibi dairesel bir renk çemberine dayanmaktadır; burada değerler çember üzerindeki dereceleri temsil eder (örneğin, 0°’ye yakın kırmızı, 120°’ye yakın yeşil ve 240°’ye yakın mavi).

0 ile 359 arasındaki renk aralığını gösteren bir renk çemberi; burada kırmızı 0, yeşil 120 ve mavi 240'tır.

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

Yazdırılabilir alanın tamamının parlak mavi olduğu V5 Beyin ekranının bir ekran görüntüsü.

setFont#

V5 Brain ekranında görüntülenen metin için kullanılan yazı tipini ayarlar.

Bu, print gibi ekran metni işlevlerini kullanırken sonraki metin çıktısına uygulanan yazı tipini kontrol eder.

Available Functions
void setFont(
  fontType font );

Parameters

Parametre

Tip

Tanım

font

fontType

Yazı tipini aşağıdakilerden birine ayarlar:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop30prop40
  • prop60prop60
  • fontType::cjk16 — Çince, Japonca ve Korece karakterleri yazdırabilir.
    • Basitleştirilmiş Çince — 28. sütuna kadar görülebilir.
    • Geleneksel Çince — 28. sütuna kadar görülebilir.
    • Japonca (Kanji) — 28. sütuna kadar görülebilir.
    • Korece (Hangul) — 30. sütuna kadar görülebilir.
Bu seçenekler aşağıda gösterilmiştir.

V5 Beyin ekranının ekran görüntüsü, sol üst köşede MONO 12 yazı tipinde beyaz renkte sayılar ve harfler basılı. Ekranın genişliğinin yaklaşık dörtte birini kaplayan tek bir satırda AZ yazısı görünüyor. Sol alt köşede 80 sütun ve 20 satır yazıyor.
mono12

Öncekiyle aynı görüntü, Mono 15 yazı tipiyle. Ekranın neredeyse yarısını kaplayan tek bir satırda AZ yazısı gösteriliyor. Sol alt köşede 68 sütun ve 16 satır yazıyor.
mono15

Öncekiyle aynı görüntü, Mono 20 yazı tipiyle. Ekranın genişliğinin neredeyse üçte ikisini kaplayan tek bir satırda AZ yazısı gösteriliyor. Sol alt köşede 48 sütun ve 12 satır yazıyor.
mono20

Öncekiyle aynı görüntü, Mono 30 yazı tipiyle. Ekranın neredeyse tüm genişliğini kaplayan tek bir satırda AZ yazısı gösteriliyor. Sol alt köşede 32 sütun ve 8 satır yazıyor.
mono30

Öncekiyle aynı resim, Mono 40 yazı tipiyle. Ekranın genişliğini kaplayan tek satırda AX yazısı gösteriliyor. Sol alt köşede 24 sütun ve 6 satır yazıyor.
mono40

Öncekiyle aynı resim, Mono 60 yazı tipiyle. Ekranın genişliğini kaplayan tek bir satırda AP gösteriyor. Altta 16 sütun ve 4 satır belirtiliyor.
mono60

Öncekiyle aynı resim, Prop 20 yazı tipiyle. Ekranın genişliğinin neredeyse üçte ikisini kaplayan tek bir satırda AZ gösteriyor. Sol alt köşede 48 sütun ve 12 satır yazıyor.
prop20

Öncekiyle aynı resim, Prop 30 yazı tipiyle. Ekranın neredeyse tamamını kaplayan tek bir satırda AZ gösteriyor. Sol alt köşede 32 sütun ve 8 satır yazıyor.
prop30

Öncekiyle aynı resim, Prop 40 yazı tipiyle. Ekranın genişliğini kaplayan tek satırda AU gösteriyor. Sol alt köşede 24 sütun ve 6 satır yazıyor.
prop40

Öncekiyle aynı resim, Prop 60 yazı tipiyle. Ekranın genişliğini kaplayan tek satırda AN yazısı gösteriliyor. Altta 15 sütun ve 4 satır yazıyor.
prop60

Öncekiyle aynı görüntü, CJK 16 yazı tipiyle. Ekranın yaklaşık üçte ikisini kaplayan tek bir satırda AZ yazısı gösteriliyor. Sonraki satırlarda VEXcode, basitleştirilmiş Çince, geleneksel Çince, Korece ve Japonca olarak okunuyor. Altta 43 sütun ve 12 satır yazıyor.
fontType::cjk16

Return Values

Bu fonksiyon bir değer döndürmez.

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

V5 Beyin ekranının sol üst köşesinde varsayılan yazı tipinden daha büyük yazı tipiyle VEX yazan beyaz metni gösteren bir ekran görüntüsü.


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

V5 Beyin ekranının ekran görüntüsü, sol üst köşede Çince yazı tipinde "VEX机器人" yazısını göstermektedir.

setPenWidth#

Çizilen çizgilerin ve şekil konturlarının kalınlığını ayarlar.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parametre

Tip

Tanım

width

uint32_t

Kalem genişliği, piksel cinsinden, 0 ile 32 arasında.

Return Values

Bu fonksiyon bir değer döndürmez.

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

V5 Brain ekranının ekran görüntüsü, ekranın sol üst köşesinde kalın kenarlıklı bir dikdörtgenin basılı olduğunu gösteriyor.

setPenColor#

Metnin, piksellerin, çizgilerin ve şekil konturlarının rengini ayarlar.

Available Functions

1 — Kalem rengini önceden tanımlanmış veya özel renk nesnesi kullanarak ayarlar.

void setPenColor(
    const color& color );

2 — Kalem rengini onaltılık renk değeri kullanarak ayarlar.

void setPenColor(
    const char* color );

3 — Kalem rengini bir ton değeri kullanarak ayarlar.

void setPenColor(
    int hue );

Parameters

Parametre

Tip

Tanım

color

const color&

Kalem rengini color nesnesi kullanarak ayarlar. Önceden tanımlanmış renkler şunlardır:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Kalem rengini, bir dize olarak temsil edilen onaltılık renk değeri kullanarak ayarlar (örneğin, “#FF0000”).

hue

int

Kalem rengini, renk çemberindeki dereceleri temsil eden 0–359aralığında bir tamsayı ton değeri kullanarak ayarlar (örneğin, 0 kırmızı, 120 yeşil ve 240 mavidir).

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Proje başlangıcında varsayılan kalem rengi white.

  • Kalem rengi, şekillerin ana hatları (örneğin drawCircle veya drawRectangle ile), metin ve sayısal çıktı (print ve printAt ile) ve drawPixel ile çizilen tek tek pikseller için kullanılır.

  • hue parametre değeri, aşağıda gösterildiği gibi dairesel bir renk çemberine dayanmaktadır; burada değerler çember üzerindeki dereceleri temsil eder (örneğin, 0°’ye yakın kırmızı, 120°’ye yakın yeşil ve 240°’ye yakın mavi).

0 ile 359 arasındaki renk aralığını gösteren bir renk çemberi; burada kırmızı 0, yeşil 120 ve mavi 240'tır.

Examples
// Draw a rectangle with orange borders
Brain.Screen.setPenColor(orange);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Ekranın sol üst köşesinde turuncu renkte çizilmiş bir dikdörtgeni gösteren V5 Beyin ekranının ekran görüntüsü.

setFillColor#

Şekiller çizilirken kullanılacak dolgu rengini ayarlar.

Available Functions

1 — Önceden tanımlanmış veya özel renk nesnesi kullanarak dolgu rengini ayarlar.

void setFillColor(
    const color& color );

2 — Dolgu rengini onaltılık renk değeri kullanarak ayarlar.

void setFillColor(
    const char* color );

3 — Bir ton değeri kullanarak dolgu rengini ayarlar.

void setFillColor(
    int hue );

Parameters

Parametre

Tip

Tanım

color

const color&

color nesnesi kullanarak dolgu rengini ayarlar. Önceden tanımlanmış renkler şunlardır:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Dolgu rengini, bir dize olarak temsil edilen onaltılık renk değeri kullanarak ayarlar (örneğin, “#00FF00”).

hue

int

Dolgu rengini, renk çemberi üzerindeki dereceleri temsil eden 0–359aralığında bir tamsayı ton değeri kullanarak ayarlar (örneğin, 0 kırmızı, 120 yeşil ve 240 mavidir).

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Proje başlangıcında varsayılan dolgu rengi black.

  • Dolgu rengi, şekillerin iç kısımları için kullanılır (örneğin drawCircle veya drawRectangle ile).

  • Dolgu rengi, yazdırılan metin için arka plan rengi olarak kullanılır (örneğin print ve printAt ile).

    • Baskılı metinle birlikte transparent kullanılırsa, arka plan black olacaktır.

  • hue parametre değeri, aşağıda gösterildiği gibi dairesel bir renk çemberine dayanmaktadır; burada değerler çember üzerindeki dereceleri temsil eder (örneğin, 0°’ye yakın kırmızı, 120°’ye yakın yeşil ve 240°’ye yakın mavi).

0 ile 359 arasındaki renk aralığını gösteren bir renk çemberi; burada kırmızı 0, yeşil 120 ve mavi 240'tır.

Examples
// Draw a rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(50, 100, 130, 60);

Ekranın sol alt köşesinde mor renkle doldurulmuş bir dikdörtgeni gösteren V5 Beyin ekranının ekran görüntüsü.

setOrigin#

Brain ekranında çizim ve koordinat tabanlı yazdırma için kullanılan başlangıç ​​noktasını ayarlar.

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

Parameters

Parametre

Tip

Tanım

x

int32_t

Başlangıç ​​noktasının, Beyin ekranının sol üst köşesine göre x eksenindeki konumu 0 ile 479 arasındadır.

y

int32_t

Başlangıç ​​noktasının, Beyin ekranının sol üst köşesine göre y eksenindeki konumu 0 ile 239 arasındadır.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Varsayılan başlangıç ​​noktası, ekranın sol üst köşesindeki (0, 0) koordinatıdır.

  • Başlangıç ​​noktası, drawLine, drawRectangle, drawCircle ve printAt gibi koordinat fonksiyonlarına uygulanır.

  • Başlangıç ​​değeri, tekrar değiştirilene veya proje sıfırlanana kadar geçerliliğini korur.

setClipRegion#

Ekranda tüm çizimlerin ve metinlerin sınırlandırılacağı dikdörtgen bir alan tanımlar. Bu alanın dışındaki herhangi bir içerik görüntülenmeyecektir.

Available Functions
void setClipRegion(
  int x,
  int y,
  int width,
  int height );

Parameters

Parametre

Tip

Tanım

x

int

Kırpma bölgesinin sol üst köşesinin x koordinatı, 0 ile 479 arasında bir tamsayı olarak verilir.

y

int

Kırpma bölgesinin sol üst köşesinin y koordinatı, 0 ile 239 arasında bir tamsayı olarak verilir.

width

int

Kırpma bölgesinin piksel cinsinden genişliği, 0 ile 479 arasında bir tamsayı olarak verilir.

height

int

Kırpma bölgesinin piksel cinsinden yüksekliği, 0 ile 239 arasında bir tamsayı olarak verilir.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Çizim işlevleri, kırpma bölgesinin dışında kalsalar bile yine de yürütülür, ancak yalnızca bölgenin içindeki kısım görünür.

  • x ve y koordinatları, setOrigin kullanılarak değiştirilebilen mevcut ekran orijinine göre belirlenir.

  • Kırpma bölgesi yalnızca geçerli iş parçacığı için geçerlidir.

  • Yeni bir kırpma bölgesi ayarlamak, geçerli iş parçacığı için önceden ayarlanmış olan tüm kırpma bölgelerinin yerini alır.

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 Beyninin ekranının bir ekran görüntüsü; sol üst köşede, kesme bölgesinde yazdırılanı yansıtan, hemen altında "Kes" yazan beyaz metin ve bunun altında dolu kırmızı bir kare bulunmaktadır.

drawPixel#

Seçilen x ve y piksel konumunda V5 Brain ekranında bir piksel çizer.

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

Parameters

Parametre

Tip

Tanım

x

int

Pikselin çizileceği x koordinatı, 0 ile 479 arasında bir tamsayı olarak verilir.

y

int

Pikselin çizileceği y koordinatı, 0 ile 239 arasında bir tamsayı olarak verilir.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Pikseller, setPenColor ile ayarlanan geçerli kalem rengi kullanılarak çizilir.

  • x ve y koordinatları, setOrigin kullanılarak ayarlanabilen geçerli ekran orijinine göre belirlenir.

  • Belirtilen piksel konumu ekran sınırlarının dışında ise, piksel çizilmez.

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

Ekranın merkezine yakın bir karenin köşelerini gösteren çeşitli pikselleri gösteren V5 Beyin ekranının bir ekran görüntüsü.

drawLine#

V5 Brain ekranında iki noktayı birleştiren düz bir çizgi çizer.

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

Parameters

Parametre

Tip

Tanım

x1

int

Doğrunun başlangıç ​​x koordinatı, 0 ile 479 arasında bir tamsayı olarak verilir.

y1

int

Doğrunun başlangıç ​​y koordinatı, 0 ile 239 arasında bir tamsayı olarak verilir.

x2

int

Doğrunun bitiş noktasındaki x koordinatı, 0 ile 479 arasında bir tamsayı olarak verilir.

y2

int

Doğrunun bitiş noktasındaki y koordinatı, 0 ile 239 arasında bir tamsayı olarak verilir.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Çizgiler, setPenColor ile ayarlanan geçerli kalem rengi kullanılarak çizilir.

  • Çizginin genişliği, setPenWidth ile ayarlanan mevcut kalem genişliği tarafından belirlenir.

  • x ve y koordinatları, setOrigin kullanılarak ayarlanabilen geçerli ekran orijinine göre belirlenir.

  • Çizginin herhangi bir kısmı ekran sınırlarının dışında kalırsa, yalnızca görünür kısım çizilir.

Examples
// Draw a line from the top left to bottom right of the screen
Brain.Screen.drawLine(0, 0, 479, 239);

V5 Beyin ekranının bir ekran görüntüsünde, sol üst köşeden sağ alt köşeye doğru merkezden geçen ince bir diyagonal çizgi görülmektedir.

drawRectangle#

V5 Brain ekranında belirtilen konum ve boyutta bir dikdörtgen çizer.

Available Functions

1 — Şu ​​anda yapılandırılmış dolgu rengi kullanılarak bir dikdörtgen çizer ve doldurur.

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

2 — Önceden tanımlanmış veya özel renk nesnesi kullanarak bir dikdörtgen çizer ve doldurur.

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

3 — Onaltılık renk değeri kullanarak bir dikdörtgen çizer ve doldurur.

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

4 — Bir renk tonu değeri kullanarak bir dikdörtgen çizer ve doldurur.

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

Parameters

Parametre

Tip

Tanım

x

int

Dikdörtgenin sol üst köşesinin x koordinatı, 0 ile 479 arasında bir tamsayı olarak verilmiştir.

y

int

Dikdörtgenin sol üst köşesinin y koordinatı, 0 ile 239 arasında bir tamsayı olarak verilmiştir.

width

int

Dikdörtgenin genişliği, 0 ile 479 arasında bir tamsayı olarak verilmiştir.

height

int

Dikdörtgenin yüksekliği, 0 ile 239 arasında bir tamsayı olarak verilmiştir.

color

const color&

Dikdörtgeni color nesnesi kullanarak doldurur. Önceden tanımlanmış renkler şunlardır:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Bu ayrıca özel renk nesnesi de kullanabilir.

color

const char*

Dikdörtgeni onaltılık renk değeri kullanarak doldurur (örneğin, “#FF0000”).

hue

int

Dikdörtgeni 0–359 aralığındaki bir renk tonu değeri kullanarak doldurur.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Dikdörtgenin dış çizgisi, setPenColor ile ayarlanan geçerli kalem rengi kullanılarak çizilir.

  • Kontur kalınlığı, setPenWidth ile ayarlanan mevcut kalem genişliği tarafından belirlenir.

  • color parametresi sağlanmadığında, dikdörtgenin içi setFillColor ile ayarlanan geçerli dolgu rengi kullanılarak doldurulur.

  • x ve y koordinatları, setOrigin kullanılarak değiştirilebilen mevcut ekran orijinine göre belirlenir.

  • Dikdörtgenin herhangi bir kısmı ekran sınırlarının dışında kalırsa, yalnızca görünür kısım çizilir.

  • hue parametre değeri, aşağıda gösterildiği gibi dairesel bir renk çemberine dayanmaktadır; burada değerler çember üzerindeki dereceleri temsil eder (örneğin, 0°’ye yakın kırmızı, 120°’ye yakın yeşil ve 240°’ye yakın mavi).

0 ile 359 arasındaki renk aralığını gösteren bir renk çemberi; burada kırmızı 0, yeşil 120 ve mavi 240'tır.

Examples
// Draw a rectangle on the screen
Brain.Screen.drawRectangle(50, 50, 130, 60);

V5 Beyninin ekranının bir ekran görüntüsünde, sol üst köşede ince beyaz kenarlıklı bir dikdörtgenin basılı olduğu görülmektedir.

drawCircle#

V5 Brain ekranında belirtilen konumda ve yarıçapta bir daire çizer.

Available Functions

1 — Şu ​​anda yapılandırılmış dolgu rengi kullanılarak bir daire çizer ve doldurur.

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

2 — Önceden tanımlanmış veya özel renk nesnesini kullanarak bir daire çizer ve doldurur.

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

3 — Onaltılık renk değeri kullanarak bir daire çizer ve doldurur.

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

4 — Bir renk tonu değeri kullanarak bir daire çizer ve doldurur.

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

Parameters

Parametre

Tip

Tanım

x

int

Çemberin merkezinin x koordinatı, 0 ile 479 arasında bir tamsayı olarak verilir.

y

int

Çemberin merkezinin y koordinatı, 0 ile 239 arasında bir tamsayı olarak verilmiştir.

radius

int

Dairenin yarıçapı, 0 ile 239 piksel arasında bir tamsayı olarak verilir.

color

const color&

Daireyi color nesnesi kullanarak doldurur. Önceden tanımlanmış renkler şunlardır:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Bu ayrıca özel bir renk nesnesi de kullanabilir.

color

const char*

Daireyi onaltılık renk değeri kullanarak doldurur (örneğin, “#FF0000”).

hue

int

Daireyi 0–359 aralığındaki bir renk tonu değeri kullanarak doldurur.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Dairenin dış çizgisi, setPenColor ile belirlenen mevcut kalem rengi kullanılarak çizilir.

  • Kontur kalınlığı, setPenWidth ile ayarlanan mevcut kalem genişliği tarafından belirlenir.

  • color parametresi sağlanmadığında, dairenin içi setFillColor ile ayarlanan geçerli dolgu rengi kullanılarak doldurulur.

  • x ve y koordinatları, setOrigin kullanılarak değiştirilebilen mevcut ekran orijinine göre belirlenir.

  • hue parametre değeri, aşağıda gösterildiği gibi dairesel bir renk çemberine dayanmaktadır; burada değerler çember üzerindeki dereceleri temsil eder (örneğin, 0°’ye yakın kırmızı, 120°’ye yakın yeşil ve 240°’ye yakın mavi).

0 ile 359 arasındaki renk aralığını gösteren bir renk çemberi; burada kırmızı 0, yeşil 120 ve mavi 240'tır.

Examples
// Draw a circle on the screen
Brain.Screen.drawCircle(240, 120, 40);

V5 Beyin ekranının bir ekran görüntüsünde, ortasında ince beyaz bir çerçeve bulunan bir daire çizilmiştir.

drawImageFromFile#

SD kartta saklanan bir resim dosyasını kullanarak V5 Beyin ekranına bir resim çizer.

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

Parameters

Parametre

Tip

Tanım

name

const char*

SD karttaki resmin dosya adı. Dosyanın uzantısı .bmp .png veya .png olmalıdır.

x

int

Görüntünün sol kenarının çizileceği x koordinatı (0 ile 479 piksel arası).

y

int

Görüntünün üst kenarının çizileceği y koordinatı (0 ile 239 piksel arası).

Return Values

Görüntünün başarıyla çizilip çizilmediğini gösteren bir Boolean değer döndürür:

  • true — Görüntü başarıyla yüklendi ve ekrana çizildi.
  • false — Görüntü çizilemedi (örneğin, dosya mevcut değilse veya geçersizse).

Notes
  • Desteklenen resim formatları .bmp ve .png.

  • Görüntü dosyasının boyutu 512 KB

    • Dosya boyutunu en aza indirmek için 8 bit RLE kodlaması önerilir.

  • Desteklenen maksimum görüntü boyutları, Brain ekranının boyutuyla aynıdır (yaklaşık 479 x 239 piksel).

  • x ve y koordinatları, setOrigin kullanılarak değiştirilebilen mevcut ekran orijinine göre belirlenir.

Examples
// Draw a bmp file on the Brain's screen at coordinate 0, 0
Brain.Screen.drawImageFromFile("test_image.bmp", 0, 0);

render#

Beyin ekranı için çift tamponlamayı etkinleştirir. Çağrıldıktan sonra, herhangi bir çizim işlevi (metin, şekiller veya resimler gibi) projenin geri kalanında hemen görünmeyecektir. Bunun yerine, güncellemeler yalnızca render tekrar kullanıldığında gösterilecektir. Bu, daha akıcı ve kontrollü ekran güncellemeleri sağlar, ancak render kullanılana kadar hiçbir şey görünmeyeceği anlamına gelir.

Available Functions

1 — Çift tamponlamayı etkinleştirir veya arka tamponu ekrana yansıtır.

bool render();

2 — Arka tamponu, dikey senkronizasyon davranışı üzerinde kontrol ve isteğe bağlı zamanlayıcı yürütme ile ekrana yansıtır.

bool render(
    bool bVsyncWait,
    bool bRunScheduler = true );

Parameters

Parametre

Tip

Tanım

bVsyncWait

bool

​

  • true — Görsel yırtılmayı azaltmak için işleme başlamadan önce ekranın dikey yenilenmesini bekleyin.
  • false — İşleme başlamadan önce ekranın dikey yenilenmesini beklemeyin.

bRunScheduler

bool

İsteğe bağlı.

  • true (varsayılan) — Oluşturma işlemi beklenirken arka plan görevlerinin çalışmasına izin verin.
  • false — Oluşturma işlemi beklenirken arka plan görevlerinin çalışmasına izin vermeyin.

Return Values

Arabellekte kaydedilen çizimlerin ekrana başarıyla yansıtılıp yansıtılmadığını gösteren bir Boolean değer döndürür:

  • true — Çizimler ekrana başarıyla yansıtıldı.
  • false — Çizimler ekrana yansıtılamadı.
  • Notes
    • render çağırmak, projenin geri kalanı için render kullanılmasını gerektirecektir.

    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 Beyin ekranının şu anda basılmakta olup olmadığına dair raporlar.

Available Functions
bool pressing();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Ekranın şu an basılı olma durumunu gösteren bir Boolean değer döndürür:true — Ekran şu anda basılı durumda. veya false — Ekran basılı değil.

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 ekranındaki son basışın x koordinatını döndürür.

Available Functions
int32_t xPosition();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Son ekran dokunuşunun x koordinatını (0 ile 479 piksel arasında) temsil eden int32_t değerini döndürür.

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 Brain ekranındaki son basışın y koordinatını döndürür.

Available Functions
int32_t yPosition();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Son ekran dokunuşunun y koordinatını (0 ile 239 piksel arasında) temsil eden bir int32_t değeri döndürür.

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 Brain ekranına basıldığında çağrılacak bir fonksiyonu kaydeder.

Available Functions

1 — Ekrana basıldığında bir fonksiyonu çağırır.

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

2 — Ekrana basıldığında bir fonksiyonu çağırır ve kullanıcı tanımlı bir argümanı geri çağrı fonksiyonuna iletir.

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

Parameters

Parametre

Tip

Tanım

callback

void (*)(void)

Ekrana basıldığında çağrılan bir fonksiyon.

callback

void ()(void)

Ekrana basıldığında çağrılan ve kullanıcı tanımlı bir argüman alan bir fonksiyon.

arg

void*

Ekrana basıldığında geri çağırma fonksiyonuna iletilen, kullanıcı tanımlı bir değer.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Geri çağırma fonksiyonu, Beyin ekranına her basıldığında yürütülür.

  • Aynı anda yalnızca bir geri çağırma fonksiyonu kaydedilebilir; pressed tuşuna basılması, önceki geri çağırma fonksiyonunun yerini alır.

  • Geri çağrı fonksiyonu void değerini döndürmelidir.

Examples

Geri çağırma fonksiyonunu tanımlayın ( int main() dışında)

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

Geri çağrıyı main() fonksiyonunun içine kaydedin 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 Brain ekranına basıldıktan sonra ekran bırakıldığında çağrılacak bir fonksiyonu kaydeder.

Available Functions

1 — Ekrana basıldıktan sonra bırakıldığında bir fonksiyonu çağırır.

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

2 — Ekrana basıldıktan sonra bırakıldığında bir fonksiyonu çağırır ve kullanıcı tanımlı bir argümanı geri çağrı fonksiyonuna iletir.

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

Parameters

Parametre

Tip

Tanım

callback

void (*)(void)

Ekrana basıldıktan sonra bırakıldığında çağrılan bir fonksiyon.

callback

void ()(void)

Ekrana basıldıktan sonra bırakıldığında çağrılan ve kullanıcı tanımlı bir argüman alan bir fonksiyon.

arg

void*

Ekrana basıldıktan sonra bırakıldığında geri çağırma fonksiyonuna iletilen, kullanıcı tanımlı bir değer.

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Geri çağırma fonksiyonu, Brain ekranına basıldıktan sonra ekran bırakıldığı her seferinde yürütülür.

  • Aynı anda yalnızca bir geri çağırma fonksiyonu kaydedilebilir; released tekrar çağırmak önceki geri çağırma fonksiyonunun yerini alır.

  • Geri çağrı fonksiyonu void değerini döndürmelidir.

Examples

Geri çağırma fonksiyonunu tanımlayın ( int main() dışında)

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

Geri çağrıyı main() fonksiyonunun içine kaydedin 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);
  }
}