شاشة#

مقدمة#

تُشتق الفئة screen من الفئة الأساسية brain. وهي تتحكم في كيفية عرض دماغ IQ (الجيل الثاني) للنصوص والأرقام والرسومات على شاشته المدمجة.

بشكل افتراضي، يكون الخط المستخدم للطباعة على جهاز Brain هو خط صغير أحادي المسافة.

أما بالنسبة للرسم، فإن دقة الدماغ تبلغ 160 × 108 بكسل.

وصول#

The screen class can be accessed by:

Brain.Screen

ملحوظات#

  • يتم توفير الكائن screen بواسطة الدماغ. ولا يتم إنشاؤه بشكل مباشر.

  • تستخدم المشاريع كائنًا عالميًا واحدًا Brain ، لذلك يتم استدعاء وظائف الشاشة باستخدام Brain.Screen.

مثال#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

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

// Print text to the Brain screen
Brain.Screen.print("Hello!");

الدوال الأعضاء#

تتضمن فئة الشاشة screen الدوال الأعضاء التالية:

  • print — يطبع النص المنسق أو الأرقام أو القيم المنطقية على شاشة الدماغ.

  • setCursor — ينقل مؤشر النص إلى صف وعمود محددين.

  • newLine — يمسح ما تبقى من السطر الحالي وينقل المؤشر إلى السطر التالي.

  • clearLine — يمسح ما تبقى من السطر الحالي أو يمسح سطرًا محددًا.

  • row — تُرجع الصف الذي سيتم فيه طباعة النص.

  • column — تُرجع العمود الذي سيتم طباعة النص فيه.

  • getStringHeight — تُرجع ارتفاع السلسلة بالبكسل باستخدام الخط الحالي.

  • getStringWidth — تُرجع عرض السلسلة بالبكسل باستخدام الخط الحالي.

  • printAt — يطبع النص المنسق في موقع بكسل x، y (معتم اختياريًا).

  • clearScreen — يمسح الشاشة بأكملها (اختياريًا إلى لون محدد).

  • setFont — يحدد الخط المستخدم للطباعة على الشاشة.

  • setPenWidth — يحدد سمك الخطوط المرسومة ومخططات الأشكال.

  • setPenColor — يحدد لون النص والبكسلات والخطوط ومخططات الأشكال.

  • setFillColor — يحدد لون التعبئة للأشكال المرسومة وخلفيات النصوص المطبوعة.

  • setOrigin — يحدد الأصل المستخدم لإحداثيات الشاشة.

  • setClipRegion — يقيد إخراج الشاشة إلى منطقة مستطيلة.

  • drawPixel — يرسم بكسل واحد عند إحداثية معينة.

  • drawLine — يرسم خطًا بين نقطتين.

  • drawRectangle — يرسم مستطيلاً في موقع x، y بحجم محدد.

  • drawCircle — يرسم دائرة عند موقع x، y بنصف قطر محدد.

  • drawImageFromFile — يرسم صورة من ملف بطاقة SD على الشاشة.

  • render — تمكين التخزين المؤقت المزدوج أو عرض المخزن المؤقت الخلفي على الشاشة.

  • pressing — إرجاع ما إذا كانت الشاشة قيد الضغط حاليًا.

  • xPosition — تُرجع إحداثيات x لأحدث ضغطة على الشاشة.

  • yPosition — تُرجع إحداثيات y لأحدث ضغطة على الشاشة.

  • pressed — يسجل دالة رد نداء لتشغيلها عند الضغط على الشاشة.

  • released — يسجل دالة رد نداء لتشغيلها عند تحرير الشاشة بعد الضغط عليها.

قبل استدعاء أي من وظائف الأعضاء screen ، يجب إنشاء مثيل brain ، كما هو موضح أدناه:

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

print#

يعرض النصوص أو الأرقام أو القيم المنطقية على شاشة الدماغ (الجيل الثاني) IQ.

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
  • Output begins at the current cursor position on the screen.

  • يستخدم النص المطبوع خط الشاشة .

  • يستخدم النص المطبوع لون القلم .

  • يتم طباعة النص باستخدام print دائمًا مع خلفية، ويتم تحديد لون الخلفية بواسطة لون التعبئة الحالي.

  • عند استخدام سلسلة تنسيق، يجب أن يتطابق عدد وأنواع القيم التي تم تمريرها مع محددات التنسيق في السلسلة.

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

لقطة شاشة لدماغ IQ (الجيل الثاني) تُظهر عبارة "مرحباً أيها الروبوت!" مطبوعة على الشاشة في الزاوية العلوية اليسرى بنص أبيض.

setCursor#

ينقل المؤشر إلى صف وعمود محددين على شاشة جهاز IQ (الجيل الثاني). ستبدأ عملية الطباعة التالية print استدعاء) من ذلك الموقع.

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

Parameters

المعلمة

يكتب

وصف

row

int32_t

الصف الذي سيتم تحريك المؤشر إليه.

col

int32_t

العمود الذي سيتم تحريك المؤشر إليه.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • يؤثر على مكان بدء إخراج النص اللاحق عند استخدام print.

  • تعتمد الصفوف والأعمدة على خط الشاشة المحدد حاليًا.

  • يستخدم الخط الافتراضي (mono20) 5 صفوف و16 عمودًا.

  • يؤثر استدعاء الدالة setCursor ) على موضع إخراج النص اللاحق فقط.

Examples
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Repeatedly print the Brain timer at top-left
  while (true) {
    Brain.Screen.print("%d", Brain.Timer.time(seconds));
    Brain.Screen.newLine();
    wait(1, seconds);
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
  }
}

لقطة شاشة لدماغ IQ (الجيل الثاني) تُظهر الرقم 25 مطبوعًا في أعلى يسار الشاشة، في ذلك الموضع.

newLine#

ينقل المؤشر إلى بداية الصف التالي على شاشة الدماغ.

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

لقطة شاشة من اختبار الذكاء (الجيل الثاني) تُظهر سطرين من النص الأبيض في الزاوية العلوية اليسرى. السطر الأول مكتوب عليه "السطر 1"، والسطر الثاني الذي يليه مباشرةً مكتوب عليه "السطر 2".

clearLine#

يمسح النص من صف في شاشة اختبار الذكاء (الجيل الثاني).

Available Functions

1 — يمسح باقي السطر الحالي من موضع المؤشر.

void clearLine();

2 — يمسح الصف المحدد باستخدام لون التعبئة.

void clearLine(
    int number );

3 — يمسح الصف المحدد باستخدام كائن لون محدد مسبقًا أو لون مخصص.

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

4 — يمسح الصف المحدد باستخدام قيمة لون سداسية عشرية.

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

5 — يمسح الصف المحدد باستخدام قيمة اللون.

void clearLine(
    int number,
    int hue );

Parameters

المعلمة

يكتب

وصف

number

int

رقم الصف المراد مسحه. يبدأ ترقيم الصفوف من 1.

color

const color&

Clears the row using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

يقوم بمسح الصف باستخدام قيمة لون سداسية عشرية (على سبيل المثال، “#000000”).

hue

int

يقوم بمسح الصف باستخدام قيمة لونية صحيحة في النطاق 0–359، والتي تمثل درجات حول عجلة الألوان.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • مسح سطر لا يغير موضع المؤشر الحالي.

  • يتم تعيين موضع المؤشر وترقيم الصفوف باستخدام setCursor.

  • تعتمد قيمة المعلمة hue على عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

عجلة ألوان توضح نطاق الألوان من 0 إلى 359، حيث الأحمر هو 0، والأخضر هو 120، والأزرق هو 240.

Examples
// Display text on two rows
Brain.Screen.print("This text stays");
Brain.Screen.newLine();
Brain.Screen.print("This disappears");

// Wait 3 seconds before clearing row 2
wait(3, seconds);
Brain.Screen.clearLine(2);

row#

يُعيد هذا السطر الصف الذي سيتم فيه طباعة النص على شاشة الدماغ (الجيل الثاني) IQ.

Available Functions
int32_t row();

Parameters

لا تقبل هذه الدالة أي معلمات.

Return Values

Returns an int32_t representing the row where text will be printed.

يبدأ ترقيم الصفوف من 1.

Notes
  • يعتمد موضع المؤشر على خط الشاشة الحالي .

  • تشير القيمة المُعادة إلى مكان ظهور الناتج المطبوع التالي.

  • تتغير قيمة الصف عند طباعة النص أو عند استدعاء setCursor.

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

لقطة شاشة لجهاز اختبار الذكاء (الجيل الثاني) تُظهر النص في الصف الثالث باللون الأبيض على الجانب الأيسر من الشاشة، في الموضع 12 من الصف الثالث.

column#

يُعيد هذا العمود الذي سيتم فيه طباعة النص على شاشة اختبار الذكاء (الجيل الثاني).

Available Functions
int32_t column();

Parameters

لا تقبل هذه الدالة أي معلمات.

Return Values

Returns an int32_t representing the column where text will be printed.

يبدأ ترقيم الأعمدة من 1.

Notes
  • يعتمد موضع المؤشر على خط الشاشة الحالي .

  • تشير القيمة المُعادة إلى مكان ظهور الناتج المطبوع التالي.

  • تتغير قيمة العمود عند طباعة النص أو عند استدعاء setCursor.

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

لقطة شاشة من اختبار الذكاء (الجيل الثاني) تُظهر العمود 9 باللون الأبيض في أعلى الشاشة، في الصف 1 العمود 9.

getStringHeight#

يقوم هذا الأمر بإرجاع ارتفاع السلسلة النصية بالبكسل عند عرضها على شاشة IQ (الجيل الثاني) Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

المعلمة

يكتب

وصف

cstr

const char*

The text to be measured, provided as a C-style string (for example, “Hello”).

Return Values

تُرجع هذه الدالة قيمة int32_t تمثل ارتفاع السلسلة بالبكسل عند عرضها على شاشة Brain.

Notes
  • يعتمد الارتفاع المُعاد على خط الشاشة المحدد حاليًا .

  • تقوم هذه الدالة بقياس السلسلة النصية دون رسمها على الشاشة.

  • يعكس الارتفاع المُعاد كيفية ظهور السلسلة عند طباعتها.

getStringWidth#

يقوم بإرجاع عرض السلسلة بالبكسل عند عرضها على شاشة IQ (الجيل الثاني) Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

المعلمة

يكتب

وصف

cstr

const char*

The text to be measured, provided as a C-style string (for example, “Hello”).

Return Values

تُرجع هذه الدالة قيمة int32_t تمثل عرض السلسلة بالبكسل عند عرضها على شاشة Brain.

Notes
  • يعتمد العرض المُعاد على خط الشاشة المحدد حاليًا .

  • تقوم هذه الدالة بقياس السلسلة النصية دون رسمها على الشاشة.

  • يعكس العرض المُعاد كيفية ظهور السلسلة عند طباعتها.

printAt#

يطبع النصوص أو الأرقام أو القيم المنطقية عند إحداثيات محددة على شاشة الدماغ (الجيل الثاني) IQ.

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

موضع الطباعة على المحور السيني، نسبةً إلى نقطة الأصل على الشاشة.

y

int32_t

موضع الطباعة على المحور الصادي، نسبةً إلى نقطة الأصل على الشاشة.

bOpaque

bool

يتحكم هذا الخيار في ما إذا كان النص المطبوع يُرسم بشكل معتم أو شفاف:

  • true — يتم ملء خلفية النص المطبوع باستخدام لون التعبئة الحالي.
  • false — يتم رسم النص بشكل شفاف ولا يتم ملء الخلفية.

format

const char*

سلسلة تنسيق تتحكم في ما يتم طباعته على الشاشة (على سبيل المثال، “Score: %d”).

…

قيمة واحدة أو أكثر إضافية يتم إدراجها في سلسلة التنسيق، مفصولة بفواصل.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • الإحداثيات x و y نسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدام setOrigin.

  • يستخدم النص المطبوع خط الشاشة .

  • يستخدم النص المطبوع لون القلم .

  • عند استخدام سلسلة تنسيق، يجب أن يتطابق عدد وأنواع القيم التي تم تمريرها مع محددات التنسيق في السلسلة.

Examples
// Print the number 1 at pixel (100, 40)
Brain.Screen.printAt(100, 40, 1);

لقطة شاشة لاختبار الذكاء (الجيل الثاني) مع نص أبيض مكتوب عليه 1، مطبوع عند (100، 40).

clearScreen#

يمسح جميع الرسومات والنصوص من شاشة الدماغ.

Available Functions

1 — يمسح الشاشة لتصبح سوداء.

void clearScreen();

2 — يمسح الشاشة باستخدام كائن لون محدد مسبقًا أو لون مخصص.

void clearScreen(
    const color& color );

3 — يمسح الشاشة باستخدام قيمة لونية سداسية عشرية.

void clearScreen(
    const char* color );

4 — يمسح الشاشة باستخدام قيمة اللون.

void clearScreen(
    int hue );

Parameters

المعلمة

يكتب

وصف

color

const color&

Clears the screen using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

يقوم بمسح الشاشة باستخدام قيمة لون سداسية عشرية ممثلة كسلسلة نصية (على سبيل المثال، “#000000”).

hue

int

يقوم بمسح الشاشة باستخدام قيمة لونية صحيحة في النطاق 0–359، والتي تمثل درجات حول عجلة الألوان.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • تعتمد قيمة المعلمة hue على عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

عجلة ألوان توضح نطاق الألوان من 0 إلى 359، حيث الأحمر هو 0، والأخضر هو 120، والأزرق هو 240.

Examples
// Clear screen after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen();


// Clear screen to blue after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen(red);

لقطة شاشة لاختبار الذكاء (الجيل الثاني) مع منطقة الطباعة بأكملها باللون الأحمر الساطع.

setFont#

يحدد الخط المستخدم للنص المعروض على شاشة الدماغ IQ (الجيل الثاني).

يتحكم هذا في الخط المطبق على إخراج النص اللاحق عند استخدام وظائف نص الشاشة مثل print.

Available Functions
void setFont(
  fontType font );

Parameters

المعلمة

يكتب

وصف

font

fontType

يُحدد الخط إلى أحد الخيارات التالية:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop30
  • prop40prop40
  • prop60prop60
الخيارات موضحة أدناه.

لقطة شاشة لجهاز VEX IQ Brain مع سلسلة من الأرقام والحروف بخط Mono 12. الحرفان AZ موجودان في سطر واحد، ويمتدان على عرض الشاشة. تشير الزاوية السفلية اليسرى إلى 26 حرفًا في 9 صفوف.
mono12

نفس لقطة الشاشة السابقة، ولكن بخط Mono 15. تظهر الأحرف AT في سطر واحد، ممتدة على عرض الشاشة. تشير الزاوية السفلية اليسرى إلى 20 حرفًا في 7 صفوف.
mono15

نفس لقطة الشاشة السابقة، ولكن بخط Mono 20. الأحرف AP على سطر واحد، تمتد على عرض الشاشة. تشير الزاوية السفلية اليسرى إلى 16 حرفًا في 5 صفوف.
mono20

نفس لقطة الشاشة السابقة، ولكن بخط Mono 30. الأرقام من 1 إلى 9 بالإضافة إلى 0 إضافي موجودة في سطر واحد، يمتد على عرض الشاشة. تشير الزاوية السفلية اليسرى إلى 3 صفوف.
mono30

نفس لقطة الشاشة السابقة، ولكن بخط Mono 40. الأرقام من 1 إلى 8 موجودة في السطر الثاني، وتمتد على عرض الشاشة.
mono40

نفس لقطة الشاشة السابقة، ولكن بخط Mono 60. تظهر الشاشة MN 60 بخط كبير، يشغل النصف العلوي من الشاشة تقريبًا.
mono60

نفس لقطة الشاشة السابقة، ولكن بخط Prop 20. تظهر الأحرف AW على سطر واحد، ممتدة على عرض الشاشة. تشير الزاوية السفلية اليسرى إلى 26 حرفًا في 5 صفوف.
prop20

نفس لقطة الشاشة السابقة، ولكن بخط Prop 30. تتكرر الأرقام من 1 إلى 9 مرتين في سطر واحد، ممتدة على عرض الشاشة. تشير الزاوية السفلية اليسرى إلى 18 حرفًا في 3 صفوف.
prop30

نفس لقطة الشاشة السابقة، ولكن بخط Prop 40. يظهر على الشاشة Prop 40 في السطر العلوي، ويشير السطر الثاني إلى 14 حرفًا وسطرين.
prop40

نفس لقطة الشاشة السابقة، ولكن بخط Prop 60. يظهر على الشاشة عبارة PROP 60 بخط كبير، يشغل النصف العلوي من الشاشة تقريبًا.
prop60

Return Values

هذه الدالة لا تُرجع قيمة.

Examples
// Display two different fonts on
// two separate lines
Brain.Screen.setFont(mono20);
Brain.Screen.print("Mono Medium");
Brain.Screen.newLine();
Brain.Screen.setFont(prop20);
Brain.Screen.print("Prop Medium");

لقطة شاشة من شاشة اختبار الذكاء IQ Brain مع نص أبيض على سطرين في الزاوية العلوية اليسرى. السطر الأول مكتوب عليه Mono Medium، والسطر الثاني أسفله مباشرة مكتوب عليه Prop Medium بخط أصغر.

setPenWidth#

يحدد سمك الخطوط المرسومة ومخططات الأشكال.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

المعلمة

يكتب

وصف

width

uint32_t

عرض القلم، بالبكسل، من 0 إلى 32.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes Examples
// Draw a circle with a pen width of 5
Brain.Screen.drawCircle(40, 70, 20);
Brain.Screen.setPenWidth(5);
Brain.Screen.drawCircle(100, 70, 20);

لقطة شاشة لاختبار الذكاء (IQ Brain) مع دائرتين بيضاوتين مطبوعتين في النصف السفلي من الشاشة. الدائرة الموجودة على اليسار مرسومة بحدود أضيق من تلك الموجودة على اليمين.

setPenColor#

يحدد لون النص، والبكسلات، والخطوط، ومخططات الأشكال.

Available Functions

1 — يحدد لون القلم باستخدام كائن لون محدد مسبقًا أو لون مخصص.

void setPenColor(
    const color& color );

2 — يحدد لون القلم باستخدام قيمة لون سداسية عشرية.

void setPenColor(
    const char* color );

3 — يحدد لون القلم باستخدام قيمة اللون.

void setPenColor(
    int hue );

Parameters

المعلمة

يكتب

وصف

color

const color&

Sets the pen color using a color object. Predefined colors include:

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

color

const char*

يحدد لون القلم باستخدام قيمة لون سداسية عشرية ممثلة كسلسلة نصية (على سبيل المثال، “#FF0000”).

hue

int

يحدد لون القلم باستخدام قيمة لونية صحيحة في النطاق 0–359، والتي تمثل درجات حول عجلة الألوان (على سبيل المثال، 0 هو أحمر، 120 هو أخضر، و 240 هو أزرق).

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • لون القلم الافتراضي في بداية المشروع هو white.

  • يتم استخدام لون القلم لتحديد الخطوط العريضة للأشكال (مثل drawCircle أو drawRectangle)، والنصوص والإخراج الرقمي (مع print و printAt)، ورسم وحدات البكسل الفردية باستخدام drawPixel.

  • تعتمد قيمة المعلمة hue على عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

عجلة ألوان توضح نطاق الألوان من 0 إلى 359، حيث الأحمر هو 0، والأخضر هو 120، والأزرق هو 240.

Examples
Brain.Screen.drawRectangle(100, 50, 10, 20);
Brain.Screen.setPenColor(blue);
Brain.Screen.drawRectangle(50, 50, 10, 20);

لقطة شاشة من تطبيق IQ Brain مع مستطيلين صغيرين مرسومين في النصف السفلي من الشاشة. المستطيل الموجود على اليسار أزرق، والمستطيل الموجود على اليمين أبيض.

setFillColor#

يحدد لون التعبئة المستخدم عند رسم الأشكال.

Available Functions

1 — يحدد لون التعبئة باستخدام كائن لون محدد مسبقًا أو لون مخصص.

void setFillColor(
    const color& color );

2 — يحدد لون التعبئة باستخدام قيمة لون سداسية عشرية.

void setFillColor(
    const char* color );

3 — يحدد لون التعبئة باستخدام قيمة درجة اللون.

void setFillColor(
    int hue );

Parameters

المعلمة

يكتب

وصف

color

const color&

Sets the fill color using a color object. Predefined colors include:

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

color

const char*

يحدد لون التعبئة باستخدام قيمة لون سداسية عشرية ممثلة كسلسلة نصية (على سبيل المثال، “#00FF00”).

hue

int

يحدد لون التعبئة باستخدام قيمة لونية صحيحة في النطاق 0–359، والتي تمثل درجات حول عجلة الألوان (على سبيل المثال، 0 هو أحمر، 120 هو أخضر، و 240 هو أزرق).

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • لون التعبئة الافتراضي في بداية المشروع هو black.

  • يتم استخدام لون التعبئة للداخل في الأشكال (مثل drawCircle أو drawRectangle).

  • يتم استخدام لون التعبئة كلون خلفية للنص المطبوع (كما هو الحال مع print و printAt).

    • إذا تم استخدام transparent مع نص مطبوع، فستكون الخلفية black.

  • تعتمد قيمة المعلمة hue على عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

عجلة ألوان توضح نطاق الألوان من 0 إلى 359، حيث الأحمر هو 0، والأخضر هو 120، والأزرق هو 240.

Examples
// Draw a circle filled with yellow
Brain.Screen.setFillColor(yellow);
Brain.Screen.drawCircle(50, 50, 20);

لقطة شاشة من شاشة اختبار الذكاء IQ Brain مع دائرة صفراء زاهية ذات إطار أبيض رفيع مرسومة على النصف الأيسر من الشاشة.

setOrigin#

يحدد نقطة الأصل المستخدمة للرسم والطباعة القائمة على الإحداثيات على شاشة الدماغ.

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

Parameters

المعلمة

يكتب

وصف

x

int32_t

موضع نقطة الأصل على المحور السيني بالنسبة للزاوية العلوية اليسرى من شاشة الدماغ من 0 إلى 159.

y

int32_t

موضع الأصل على المحور الصادي بالنسبة للزاوية العلوية اليسرى لشاشة الدماغ من 0 إلى 107.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • الأصل الافتراضي هو الزاوية العلوية اليسرى للشاشة عند الإحداثيات (0، 0).

  • ينطبق الأصل على وظائف الإحداثيات مثل drawLine, drawRectangle, drawCircle, و printAt.

  • يظل الأصل ساري المفعول حتى يتم تغييره مرة أخرى أو إعادة ضبط المشروع.

setClipRegion#

يُحدد هذا الخيار منطقة مستطيلة على الشاشة حيث سيتم حصر جميع الرسومات والنصوص. ولن يتم عرض أي محتوى خارج هذه المنطقة.

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

Parameters

المعلمة

يكتب

وصف

x

int

إحداثيات x للزاوية العلوية اليسرى لمنطقة القص، معطاة كعدد صحيح من 0 إلى 159.

y

int

إحداثيات y للزاوية العلوية اليسرى لمنطقة القص، معطاة كعدد صحيح من 0 إلى 107.

width

int

عرض منطقة القص بالبكسل، معطاة كعدد صحيح من 0 إلى 159.

height

int

ارتفاع منطقة القص بالبكسل، معطاة كعدد صحيح من 0 إلى 107.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • تستمر وظائف الرسم في التنفيذ حتى لو كانت خارج منطقة القص، ولكن الجزء الموجود داخل المنطقة فقط هو المرئي.

  • الإحداثيات x و y نسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدام setOrigin.

  • ينطبق نطاق القص فقط على الخيط الحالي.

  • يؤدي تعيين منطقة قص جديدة إلى استبدال أي منطقة قص تم تعيينها مسبقًا للخيط الحالي.

Examples
// Restrict text and drawings to a specific region
Brain.Screen.setClipRegion(0, 0, 120, 120);
Brain.Screen.drawRectangle(60, 60, 100, 100, red);
Brain.Screen.printAt(60, 60, "Cut off!");

لقطة شاشة لجهاز IQ (الجيل الثاني) Brain مع نص أبيض مكتوب عليه "Cut of" مع مربع أحمر صلب أسفله مباشرة في الربع العلوي الأيسر، مما يعكس ما هو مطبوع داخل منطقة القطع.

drawPixel#

يرسم بكسل واحد على شاشة الدماغ IQ (الجيل الثاني) في موقع البكسل المحدد x و y.

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

Parameters

المعلمة

يكتب

وصف

x

int

إحداثي x حيث سيتم رسم البكسل، معطاة كعدد صحيح من 0 إلى 159.

y

int

إحداثي y حيث سيتم رسم البكسل، معطاة كعدد صحيح من 0 إلى 107.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • يتم رسم البكسلات باستخدام لون القلم الحالي المحدد بواسطة setPenColor.

  • الإحداثيات x و y نسبية إلى أصل الشاشة الحالي، والذي يمكن تعيينه باستخدام setOrigin.

  • إذا كان موقع البكسل المحدد خارج حدود الشاشة، فلن يتم رسم البكسل.

Examples
// Draw one pixel at the center 
// of the screen
Brain.Screen.drawPixel(80, 50);

لقطة شاشة من تطبيق IQ Brain مع نقطة بيضاء صغيرة في منتصف الشاشة.

drawLine#

يرسم خطًا مستقيمًا يصل بين نقطتين على شاشة اختبار الذكاء (الجيل الثاني).

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

Parameters

المعلمة

يكتب

وصف

x1

int

إحداثي البداية للخط على المحور السيني، معطاة كعدد صحيح من 0 إلى 159.

y1

int

إحداثي y الابتدائي للخط، معطاة كعدد صحيح من 0 إلى 107.

x2

int

إحداثي س النهائي للخط، معطاة كعدد صحيح من 0 إلى 159.

y2

int

إحداثي y النهائي للخط، معطاة كعدد صحيح من 0 إلى 107.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • يتم رسم الخطوط باستخدام لون القلم الحالي المحدد بواسطة setPenColor.

  • يتم تحديد عرض الخط بواسطة عرض القلم الحالي المحدد بواسطة setPenWidth.

  • الإحداثيات x و y نسبية إلى أصل الشاشة الحالي، والذي يمكن تعيينه باستخدام setOrigin.

  • إذا كان أي جزء من الخط يقع خارج حدود الشاشة، فسيتم رسم الجزء المرئي فقط.

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

لقطة شاشة من تطبيق IQ Brain مع خط قطري أبيض مرسوم من الزاوية العلوية اليسرى إلى الزاوية السفلية اليمنى.

drawRectangle#

يرسم مستطيلاً على شاشة الدماغ (الجيل الثاني) في الموضع والحجم المحددين.

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 — يرسم ويملأ مستطيلاً باستخدام قيمة لون سداسية عشرية.

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

الإحداثي السيني للزاوية العلوية اليسرى للمستطيل، معطاة كعدد صحيح من 0 إلى 159.

y

int

إحداثي y للزاوية العلوية اليسرى للمستطيل، معطاة كعدد صحيح من 0 إلى 107.

width

int

عرض المستطيل، معبر عنه كعدد صحيح من 0 إلى 159.

height

int

ارتفاع المستطيل، معبراً عنه كعدد صحيح من 0 إلى 107.

color

const color&

Fills the rectangle using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

يملأ المستطيل باستخدام قيمة لون سداسية عشرية (على سبيل المثال، “#FF0000”).

hue

int

يملأ المستطيل باستخدام قيمة لونية في النطاق 0–359.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • يتم رسم مخطط المستطيل باستخدام لون القلم الحالي المحدد بواسطة setPenColor.

  • يتم تحديد سمك الخط الخارجي بواسطة عرض القلم الحالي المحدد بواسطة setPenWidth.

  • عندما لا يتم توفير معلمة اللون color ، يتم ملء الجزء الداخلي من المستطيل باستخدام لون التعبئة الحالي المحدد بواسطة setFillColor.

  • الإحداثيات x و y نسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدام setOrigin.

  • إذا كان أي جزء من المستطيل يقع خارج حدود الشاشة، فسيتم رسم الجزء المرئي فقط.

  • تعتمد قيمة المعلمة hue على عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

عجلة ألوان توضح نطاق الألوان من 0 إلى 359، حيث الأحمر هو 0، والأخضر هو 120، والأزرق هو 240.

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

لقطة شاشة من شاشة اختبار الذكاء IQ Brain مع مستطيل أحمر كبير ذي حدود بيضاء رفيعة مرسوم في منتصف الشاشة تقريبًا.

drawCircle#

يرسم دائرة على شاشة اختبار الذكاء (الجيل الثاني) في الموضع ونصف القطر المحددين.

Available Functions

1 — يرسم ويملأ دائرة باستخدام لون التعبئة.

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

2 — يرسم ويملأ دائرة باستخدام كائن لون محدد مسبقًا أو لون مخصص.

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

3 — يرسم ويملأ دائرة باستخدام قيمة لون سداسية عشرية.

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

الإحداثي السيني لمركز الدائرة، معطاة كعدد صحيح من 0 إلى 159.

y

int

إحداثي y لمركز الدائرة، معطاة كعدد صحيح من 0 إلى 107.

radius

int

نصف قطر الدائرة، معطاة كعدد صحيح من 0 إلى 107 بكسل.

color

const color&

Fills the circle using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

يملأ الدائرة باستخدام قيمة لون سداسية عشرية (على سبيل المثال، “#FF0000”).

hue

int

يملأ الدائرة باستخدام قيمة لونية في النطاق 0–359.

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • يتم رسم مخطط الدائرة باستخدام لون القلم الحالي المحدد بواسطة setPenColor.

  • يتم تحديد سمك الخط الخارجي بواسطة عرض القلم الحالي المحدد بواسطة setPenWidth.

  • عندما لا يتم توفير معلمة اللون color ، يتم ملء الجزء الداخلي للدائرة باستخدام لون التعبئة الحالي المحدد بواسطة setFillColor.

  • الإحداثيات x و y نسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدام setOrigin.

  • تعتمد قيمة المعلمة hue على عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

عجلة ألوان توضح نطاق الألوان من 0 إلى 359، حيث الأحمر هو 0، والأخضر هو 120، والأزرق هو 240.

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

لقطة شاشة لاختبار الذكاء الدماغي مع دائرة خضراء صلبة ذات حافة بيضاء رفيعة في وسط الشاشة.

drawImageFromFile#

يرسم صورة على شاشة الدماغ IQ (الجيل الثاني) باستخدام ملف صورة مخزن على بطاقة SD.

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

Parameters

المعلمة

يكتب

وصف

name

const char*

The filename of the image on the SD card. The file must have a .bmp or .png extension.

x

int

الإحداثي السيني، بالبكسل من 0 إلى 159، الذي سيتم عنده رسم الحافة اليسرى للصورة.

y

int

إحداثيات y، بالبكسل من 0 إلى 107، التي سيتم عندها رسم الحافة العلوية للصورة.

Return Values

تُرجع هذه الدالة قيمة منطقية تُشير إلى ما إذا تم رسم الصورة بنجاح:

  • true — تم تحميل الصورة ورسمها على الشاشة بنجاح.
  • false — تعذر رسم الصورة (على سبيل المثال، إذا كان الملف غير موجود أو غير صالح).

Notes
  • تنسيقات الصور المدعومة هي .bmp و .png.

  • يجب ألا يتجاوز حجم ملف الصورة 512 KB.

    • يُنصح باستخدام ترميز RLE ذي 8 بت لتقليل حجم الملف.

  • أقصى أبعاد الصورة المدعومة هي حجم شاشة الدماغ (160 × 108 بكسل).

  • الإحداثيات x و y نسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدام setOrigin.

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

render#

يُفعّل هذا الخيار التخزين المؤقت المزدوج لشاشة الدماغ. بمجرد استدعائه، لن تظهر أي وظائف رسم (مثل النصوص والأشكال والصور) فورًا لبقية المشروع. بدلًا من ذلك، لن تظهر التحديثات إلا عند استخدام الأمر 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();