شاشة#
مقدمة#
تُشتق الفئة screen من الفئة الأساسية brain. وهي تتحكم في كيفية عرض معالج V5 Brain للنصوص والأرقام والرسومات على شاشته اللمسية، وكيفية استجابته لإدخال اللمس.
بشكل افتراضي، يكون الخط المستخدم للطباعة على جهاز Brain هو خط صغير أحادي المسافة والذي يحتوي على 12 صفًا و 48 عمودًا.
أما بالنسبة للرسم، فإن دقة الدماغ تبلغ 480 × 240 بكسل.

وصول#
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 V5 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 V5 Brain
brain Brain = brain();
print#
يعرض النصوص أو الأرقام أو القيم المنطقية على شاشة V5 Brain.
Available Functions1 — يطبع النص المنسق باستخدام السلاسل النصية الحرفية أو السلاسل النصية للقراءة فقط على نمط لغة C.
void print( const char* format, ... );
Parameters2 — يطبع نصًا منسقًا باستخدام مصفوفات الأحرف القابلة للتعديل.
void print( char* format, ... );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
سلسلة تنسيق يتم توفيرها كسلسلة حرفية أو سلسلة للقراءة فقط على نمط لغة C (على سبيل المثال، |
|
|
سلسلة تنسيق مُقدمة كمصفوفة أحرف قابلة للتعديل. |
|
قيمة واحدة أو أكثر إضافية يتم إدراجها في سلسلة التنسيق، مفصولة بفواصل. |
هذه الدالة لا تُرجع قيمة.
NotesOutput begins at the current cursor position on the screen.
يتم طباعة النص باستخدام
printدائمًا مع خلفية، ويتم تحديد لون الخلفية بواسطة لون التعبئة الحالي.عند استخدام سلسلة تنسيق، يجب أن يتطابق عدد وأنواع القيم التي تم تمريرها مع محددات التنسيق في السلسلة.
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");

setCursor#
ينقل المؤشر إلى صف وعمود محددين على شاشة V5 Brain. سيبدأ استدعاء print التالي الطباعة من ذلك الموقع.
void setCursor(
int32_t row,
int32_t col );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
الصف الذي سيتم تحريك المؤشر إليه. |
|
|
العمود الذي سيتم تحريك المؤشر إليه. |
هذه الدالة لا تُرجع قيمة.
Notesيؤثر على مكان بدء إخراج النص اللاحق عند استخدام
print.تعتمد الصفوف والأعمدة على خط الشاشة المحدد حاليًا.
يستخدم الخط الافتراضي (
mono20) 12 صفًا و48 عمودًا.يؤثر استدعاء الدالة
setCursor) على موضع إخراج النص اللاحق فقط.
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

newLine#
ينقل المؤشر إلى بداية الصف التالي على شاشة الدماغ.
Available Functionsvoid newLine();
لا تقبل هذه الدالة أي معلمات.
Return Valuesهذه الدالة لا تُرجع قيمة.
Notesإذا كان المؤشر في منتصف جملة، فإن
newLineسيمسح باقي السطر بعد المؤشر قبل الانتقال إلى السطر التالي.بعد استدعاء
newLine، يتم وضع المؤشر في العمود الأول من السطر التالي.يتم تعيين موضع المؤشر وترقيم الصفوف باستخدام
setCursor.
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

clearLine#
يمسح النص من صف على شاشة V5 Brain.
Available Functions1 — يمسح باقي السطر الحالي من موضع المؤشر.
void clearLine();
2 — يمسح الصف المحدد باستخدام لون التعبئة.
void clearLine( int number );
3 — يمسح الصف المحدد باستخدام كائن لون محدد مسبقًا أو لون مخصص.
void clearLine( int number, const color& color );
4 — يمسح الصف المحدد باستخدام قيمة لون سداسية عشرية.
void clearLine( int number, const char* color );
Parameters5 — يمسح الصف المحدد باستخدام قيمة اللون.
void clearLine( int number, int hue );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
رقم الصف المراد مسحه. يبدأ ترقيم الصفوف من |
|
|
Clears the row using a
|
|
|
يقوم بمسح الصف باستخدام قيمة لون سداسية عشرية (على سبيل المثال، |
|
|
يقوم بمسح الصف باستخدام قيمة لونية صحيحة في النطاق |
هذه الدالة لا تُرجع قيمة.
Notesمسح سطر لا يغير موضع المؤشر الحالي.
يتم تعيين موضع المؤشر وترقيم الصفوف باستخدام
setCursor.تعتمد قيمة المعلمة
hueعلى عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

// 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.
Available Functionsint32_t row();
لا تقبل هذه الدالة أي معلمات.
Return ValuesReturns an int32_t representing the row where text will be printed.
يبدأ ترقيم الصفوف من 1.
Notesتشير القيمة المُعادة إلى مكان ظهور الناتج المطبوع التالي.
تتغير قيمة الصف عند طباعة النص أو عند استدعاء
setCursor.
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print(Brain.Screen.row());

column#
يُعيد هذا الأمر العمود الذي سيتم فيه طباعة النص على شاشة V5 Brain.
Available Functionsint32_t column();
لا تقبل هذه الدالة أي معلمات.
Return ValuesReturns an int32_t representing the column where text will be printed.
يبدأ ترقيم الأعمدة من 1.
Notesتشير القيمة المُعادة إلى مكان ظهور الناتج المطبوع التالي.
تتغير قيمة العمود عند طباعة النص أو عند استدعاء
setCursor.
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

getStringHeight#
يُعيد هذا الأمر ارتفاع السلسلة النصية بالبكسل عند عرضها على شاشة V5 Brain.
Available Functionsint32_t getStringHeight(
const char* cstr );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
The text to be measured, provided as a C-style string (for example, |
تُرجع هذه الدالة قيمة int32_t تمثل ارتفاع السلسلة بالبكسل عند عرضها على شاشة Brain.
getStringWidth#
تُعيد هذه الدالة عرض السلسلة النصية بالبكسل عند عرضها على شاشة V5 Brain.
Available Functionsint32_t getStringWidth(
const char* cstr );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
The text to be measured, provided as a C-style string (for example, |
تُرجع هذه الدالة قيمة int32_t تمثل عرض السلسلة بالبكسل عند عرضها على شاشة Brain.
printAt#
يطبع النصوص أو الأرقام أو القيم المنطقية عند إحداثيات محددة على شاشة V5 Brain.
Available Functions1 — يطبع المخرجات المنسقة في موقع البكسل المحدد.
void printAt( int32_t x, int32_t y, const char* format, ... );
Parameters2 — يقوم بطباعة المخرجات المنسقة في موقع البكسل المحدد ويحدد ما إذا كانت خلفية النص معتمة أم شفافة.
void printAt( int32_t x, int32_t y, bool bOpaque, const char* format, ... );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
موضع الطباعة على المحور السيني، نسبةً إلى نقطة الأصل على الشاشة. |
|
|
موضع الطباعة على المحور الصادي، نسبةً إلى نقطة الأصل على الشاشة. |
|
|
يتحكم هذا الخيار في ما إذا كان النص المطبوع يُرسم بشكل معتم أو شفاف:
|
|
|
سلسلة تنسيق تتحكم في ما يتم طباعته على الشاشة (على سبيل المثال، |
|
قيمة واحدة أو أكثر إضافية يتم إدراجها في سلسلة التنسيق، مفصولة بفواصل. |
هذه الدالة لا تُرجع قيمة.
Notesالإحداثيات
xوyنسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدامsetOrigin.عند استخدام سلسلة تنسيق، يجب أن يتطابق عدد وأنواع القيم التي تم تمريرها مع محددات التنسيق في السلسلة.
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

clearScreen#
يمسح جميع الرسومات والنصوص من شاشة الدماغ ويعيد ضبط موضع المؤشر إلى الصف 1، العمود 1.
Available Functions1 — يمسح الشاشة لتصبح سوداء.
void clearScreen();
2 — يمسح الشاشة باستخدام كائن لون محدد مسبقًا أو لون مخصص.
void clearScreen( const color& color );
3 — يمسح الشاشة باستخدام قيمة لونية سداسية عشرية.
void clearScreen( const char* color );
Parameters4 — يمسح الشاشة باستخدام قيمة اللون.
void clearScreen( int hue );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
Clears the screen using a
|
|
|
يقوم بمسح الشاشة باستخدام قيمة لون سداسية عشرية ممثلة كسلسلة نصية (على سبيل المثال، |
|
|
يقوم بمسح الشاشة باستخدام قيمة لونية صحيحة في النطاق |
هذه الدالة لا تُرجع قيمة.
Notesتعتمد قيمة المعلمة
hueعلى عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

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

setFont#
يحدد هذا الخيار نوع الخط المستخدم للنص المعروض على شاشة V5 Brain.
يتحكم هذا في الخط المطبق على إخراج النص اللاحق عند استخدام وظائف نص الشاشة مثل print.
void setFont(
fontType font );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
Sets the font to one of the following:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
هذه الدالة لا تُرجع قيمة.
Examples// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

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

setPenWidth#
يحدد سمك الخطوط المرسومة ومخططات الأشكال.
Available Functionsvoid setPenWidth(
uint32_t width );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
عرض القلم، بالبكسل، من 0 إلى 32. |
هذه الدالة لا تُرجع قيمة.
Notesينطبق عرض القلم على وظائف الرسم مثل
drawLine،drawRectangle، وdrawCircle.
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

setPenColor#
يحدد لون النص، والبكسلات، والخطوط، ومخططات الأشكال.
Available Functions1 — يحدد لون القلم باستخدام كائن لون محدد مسبقًا أو لون مخصص.
void setPenColor( const color& color );
2 — يحدد لون القلم باستخدام قيمة لون سداسية عشرية.
void setPenColor( const char* color );
Parameters3 — يحدد لون القلم باستخدام قيمة اللون.
void setPenColor( int hue );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
Sets the pen color using a
|
|
|
يحدد لون القلم باستخدام قيمة لون سداسية عشرية ممثلة كسلسلة نصية (على سبيل المثال، |
|
|
يحدد لون القلم باستخدام قيمة لونية صحيحة في النطاق |
هذه الدالة لا تُرجع قيمة.
Notesلون القلم الافتراضي في بداية المشروع هو
white.يتم استخدام لون القلم لتحديد الخطوط العريضة للأشكال (مثل
drawCircleأوdrawRectangle)، والنصوص والإخراج الرقمي (معprintوprintAt)، ورسم وحدات البكسل الفردية باستخدامdrawPixel.تعتمد قيمة المعلمة
hueعلى عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

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

setFillColor#
يحدد لون التعبئة المستخدم عند رسم الأشكال.
Available Functions1 — يحدد لون التعبئة باستخدام كائن لون محدد مسبقًا أو لون مخصص.
void setFillColor( const color& color );
2 — يحدد لون التعبئة باستخدام قيمة لون سداسية عشرية.
void setFillColor( const char* color );
Parameters3 — يحدد لون التعبئة باستخدام قيمة درجة اللون.
void setFillColor( int hue );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
Sets the fill color using a
|
|
|
يحدد لون التعبئة باستخدام قيمة لون سداسية عشرية ممثلة كسلسلة نصية (على سبيل المثال، |
|
|
يحدد لون التعبئة باستخدام قيمة لونية صحيحة في النطاق |
هذه الدالة لا تُرجع قيمة.
Notesلون التعبئة الافتراضي في بداية المشروع هو
black.يتم استخدام لون التعبئة للداخل في الأشكال (مثل
drawCircleأوdrawRectangle).يتم استخدام لون التعبئة كلون خلفية للنص المطبوع (كما هو الحال مع
printوprintAt).إذا تم استخدام
transparentمع نص مطبوع، فستكون الخلفيةblack.
تعتمد قيمة المعلمة
hueعلى عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

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

setOrigin#
يحدد نقطة الأصل المستخدمة للرسم والطباعة القائمة على الإحداثيات على شاشة الدماغ.
Available Functionsvoid setOrigin(
int32_t x,
int32_t y );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
موضع نقطة الأصل على المحور السيني بالنسبة للزاوية العلوية اليسرى من شاشة الدماغ من 0 إلى 479. |
|
|
موضع الأصل على المحور الصادي بالنسبة للزاوية العلوية اليسرى لشاشة الدماغ من 0 إلى 239. |
هذه الدالة لا تُرجع قيمة.
Notesالأصل الافتراضي هو الزاوية العلوية اليسرى للشاشة عند الإحداثيات (0، 0).
ينطبق الأصل على وظائف الإحداثيات مثل
drawLine,drawRectangle,drawCircle, وprintAt.يظل الأصل ساري المفعول حتى يتم تغييره مرة أخرى أو إعادة ضبط المشروع.
setClipRegion#
يُحدد هذا الخيار منطقة مستطيلة على الشاشة حيث سيتم حصر جميع الرسومات والنصوص. ولن يتم عرض أي محتوى خارج هذه المنطقة.
Available Functionsvoid setClipRegion(
int x,
int y,
int width,
int height );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
إحداثيات x للزاوية العلوية اليسرى لمنطقة القص، معطاة كعدد صحيح من 0 إلى 479. |
|
|
إحداثيات y للزاوية العلوية اليسرى لمنطقة القص، معطاة كعدد صحيح من 0 إلى 239. |
|
|
عرض منطقة القص بالبكسل، معطاة كعدد صحيح من 0 إلى 479. |
|
|
ارتفاع منطقة القص بالبكسل، معطاة كعدد صحيح من 0 إلى 239. |
هذه الدالة لا تُرجع قيمة.
Notesتستمر وظائف الرسم في التنفيذ حتى لو كانت خارج منطقة القص، ولكن الجزء الموجود داخل المنطقة فقط هو المرئي.
الإحداثيات
xوyنسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدامsetOrigin.ينطبق نطاق القص فقط على الخيط الحالي.
يؤدي تعيين منطقة قص جديدة إلى استبدال أي منطقة قص تم تعيينها مسبقًا للخيط الحالي.
// 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!");

drawPixel#
يرسم بكسل واحد على شاشة V5 Brain في موقع البكسل المحدد x و y.
Available Functionsvoid drawPixel(
int x,
int y );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
إحداثي x حيث سيتم رسم البكسل، معطاة كعدد صحيح من 0 إلى 479. |
|
|
إحداثي y حيث سيتم رسم البكسل، معطاة كعدد صحيح من 0 إلى 239. |
هذه الدالة لا تُرجع قيمة.
Notesيتم رسم البكسلات باستخدام لون القلم الحالي المحدد بواسطة
setPenColor.الإحداثيات
xوyنسبية إلى أصل الشاشة الحالي، والذي يمكن تعيينه باستخدامsetOrigin.إذا كان موقع البكسل المحدد خارج حدود الشاشة، فلن يتم رسم البكسل.
// 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);
![]()
drawLine#
يرسم خطًا مستقيمًا يصل بين نقطتين على شاشة V5 Brain.
Available Functionsvoid drawLine(
int x1,
int y1,
int x2,
int y2 );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
إحداثي البداية للخط على المحور السيني، معطاة كعدد صحيح من 0 إلى 479. |
|
|
إحداثي y الابتدائي للخط، معطاة كعدد صحيح من 0 إلى 239. |
|
|
إحداثي س النهائي للخط، معطاة كعدد صحيح من 0 إلى 479. |
|
|
إحداثي الصادات النهائي للخط، معطاة كعدد صحيح من 0 إلى 239. |
هذه الدالة لا تُرجع قيمة.
Notesيتم رسم الخطوط باستخدام لون القلم الحالي المحدد بواسطة
setPenColor.يتم تحديد عرض الخط بواسطة عرض القلم الحالي المحدد بواسطة
setPenWidth.الإحداثيات
xوyنسبية إلى أصل الشاشة الحالي، والذي يمكن تعيينه باستخدامsetOrigin.إذا كان أي جزء من الخط يقع خارج حدود الشاشة، فسيتم رسم الجزء المرئي فقط.
// Draw a line from the top left to bottom right of the screen
Brain.Screen.drawLine(0, 0, 479, 239);

drawRectangle#
يرسم مستطيلاً على شاشة V5 Brain في الموضع والحجم المحددين.
Available Functions1 — يرسم ويملأ مستطيلاً باستخدام لون التعبئة.
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 );
Parameters4 — يرسم ويملأ مستطيلاً باستخدام قيمة لونية.
void drawRectangle( int x, int y, int width, int height, int hue );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
الإحداثي السيني للزاوية العلوية اليسرى للمستطيل، معطاة كعدد صحيح من 0 إلى 479. |
|
|
إحداثي y للزاوية العلوية اليسرى للمستطيل، معطاة كعدد صحيح من 0 إلى 239. |
|
|
عرض المستطيل، معطاة كعدد صحيح من 0 إلى 479. |
|
|
ارتفاع المستطيل، معبر عنه كعدد صحيح من 0 إلى 239. |
|
|
Fills the rectangle using a
|
|
|
يملأ المستطيل باستخدام قيمة لون سداسية عشرية (على سبيل المثال، |
|
|
يملأ المستطيل باستخدام قيمة لونية في النطاق |
هذه الدالة لا تُرجع قيمة.
Notesيتم رسم مخطط المستطيل باستخدام لون القلم الحالي المحدد بواسطة
setPenColor.يتم تحديد سمك الخط الخارجي بواسطة عرض القلم الحالي المحدد بواسطة
setPenWidth.عندما لا يتم توفير معلمة اللون
color، يتم ملء الجزء الداخلي من المستطيل باستخدام لون التعبئة الحالي المحدد بواسطةsetFillColor.الإحداثيات
xوyنسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدامsetOrigin.إذا كان أي جزء من المستطيل يقع خارج حدود الشاشة، فسيتم رسم الجزء المرئي فقط.
تعتمد قيمة المعلمة
hueعلى عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

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

drawCircle#
يرسم دائرة على شاشة V5 Brain في الموضع ونصف القطر المحددين.
Available Functions1 — يرسم ويملأ دائرة باستخدام لون التعبئة.
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 );
Parameters4 — يرسم ويملأ دائرة باستخدام قيمة لونية.
void drawCircle( int x, int y, int radius, int hue );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
الإحداثي السيني لمركز الدائرة، معطاة كعدد صحيح من 0 إلى 479. |
|
|
إحداثي y لمركز الدائرة، معطاة كعدد صحيح من 0 إلى 239. |
|
|
نصف قطر الدائرة، معطاة كعدد صحيح من 0 إلى 239 بكسل. |
|
|
Fills the circle using a
|
|
|
يملأ الدائرة باستخدام قيمة لون سداسية عشرية (على سبيل المثال، |
|
|
يملأ الدائرة باستخدام قيمة لونية في النطاق |
هذه الدالة لا تُرجع قيمة.
Notesيتم رسم مخطط الدائرة باستخدام لون القلم الحالي المحدد بواسطة
setPenColor.يتم تحديد سمك الخط الخارجي بواسطة عرض القلم الحالي المحدد بواسطة
setPenWidth.عندما لا يتم توفير معلمة اللون
color، يتم ملء الجزء الداخلي للدائرة باستخدام لون التعبئة الحالي المحدد بواسطةsetFillColor.الإحداثيات
xوyنسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدامsetOrigin.تعتمد قيمة المعلمة
hueعلى عجلة ألوان دائرية، كما هو موضح أدناه، حيث تمثل القيم درجات حول العجلة (على سبيل المثال، الأحمر بالقرب من 0 درجة، والأخضر بالقرب من 120 درجة، والأزرق بالقرب من 240 درجة).

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

drawImageFromFile#
يرسم صورة على شاشة V5 Brain باستخدام ملف صورة مخزن على بطاقة SD.
Available Functionsbool drawImageFromFile(
const char* name,
int x,
int y );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
The filename of the image on the SD card. The file must have a |
|
|
الإحداثي السيني، بالبكسل من 0 إلى 479، الذي سيتم عنده رسم الحافة اليسرى للصورة. |
|
|
إحداثيات y، بالبكسل من 0 إلى 239، التي سيتم عندها رسم الحافة العلوية للصورة. |
تُرجع هذه الدالة قيمة منطقية تُشير إلى ما إذا تم رسم الصورة بنجاح:
true— تم تحميل الصورة ورسمها على الشاشة بنجاح.false— تعذر رسم الصورة (على سبيل المثال، إذا كان الملف غير موجود أو غير صالح).
تنسيقات الصور المدعومة هي
.bmpو.png.يجب ألا يتجاوز حجم ملف الصورة
512 KB.يُنصح باستخدام ترميز RLE ذي 8 بت لتقليل حجم الملف.
أقصى أبعاد الصورة المدعومة هي حجم شاشة الدماغ (حوالي 479 × 239 بكسل).
الإحداثيات
xوyنسبية إلى أصل الشاشة الحالي، والذي يمكن تغييره باستخدامsetOrigin.
// Draw a bmp file on the Brain's screen at coordinate 0, 0
Brain.Screen.drawImageFromFile("test_image.bmp", 0, 0);
render#
يُفعّل هذا الخيار التخزين المؤقت المزدوج لشاشة الدماغ. بمجرد استدعائه، لن تظهر أي وظائف رسم (مثل النصوص والأشكال والصور) فورًا لبقية المشروع. بدلًا من ذلك، لن تظهر التحديثات إلا عند استخدام الأمر render مرة أخرى. يتيح هذا تحديثات أكثر سلاسة وتحكمًا للشاشة، ولكنه يعني أيضًا أنه لن يكون أي شيء مرئيًا حتى يتم استخدام الأمر render.
1 — يُمكّن التخزين المؤقت المزدوج أو يعرض المخزن المؤقت الخلفي على الشاشة.
bool render();
Parameters2 — يعرض المخزن المؤقت الخلفي على الشاشة مع التحكم في سلوك المزامنة الرأسية وتنفيذ الجدولة الاختياري.
bool render( bool bVsyncWait, bool bRunScheduler = true );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
|
|
|
اختياري.
|
تُرجع هذه الدالة قيمة منطقية تُشير إلى ما إذا كانت الرسومات المحفوظة في المخزن المؤقت قد عُرضت بنجاح على الشاشة:
true— عُرضت الرسومات بنجاح على الشاشة.false— لم يتم عرض الرسومات على الشاشة.
Notes
إن استدعاء
renderسيتطلب استخدامrenderلبقية المشروع.
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 Brain.
Available Functionsbool pressing();
لا تقبل هذه الدالة أي معلمات.
Return Valuesتُرجع هذه الدالة قيمة منطقية تُشير إلى حالة الضغط الحالية على الشاشة:true — الشاشة قيد الضغط حاليًا. أو false — الشاشة غير قيد الضغط.
// 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.
Available Functionsint32_t xPosition();
لا تقبل هذه الدالة أي معلمات.
Return Valuesتُرجع قيمة int32_t تمثل الإحداثي السيني، بالبكسل من 0 إلى 479، لآخر ضغطة على الشاشة.
// 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#
يعيد إحداثيات y لآخر ضغطة على شاشة V5 Brain.
Available Functionsint32_t yPosition();
لا تقبل هذه الدالة أي معلمات.
Return Valuesتُرجع هذه الدالة قيمة int32_t تمثل الإحداثي y، بالبكسل من 0 إلى 239، لآخر ضغطة على الشاشة.
// 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.
Available Functions1 — يستدعي دالة عند الضغط على الشاشة.
void pressed( void (*callback)(void) );
Parameters2 — يستدعي دالة عند الضغط على الشاشة ويمرر وسيطة محددة من قبل المستخدم إلى دالة الاستدعاء.
void pressed( void (*callback)(void*), void* arg );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
دالة يتم استدعاؤها عند الضغط على الشاشة. |
|
|
دالة يتم استدعاؤها عند الضغط على الشاشة وتستقبل وسيطة محددة من قبل المستخدم. |
|
|
قيمة يحددها المستخدم ويتم تمريرها إلى دالة الاستدعاء عند الضغط على الشاشة. |
هذه الدالة لا تُرجع قيمة.
Notesيتم تنفيذ وظيفة الاستدعاء في كل مرة يتم فيها الضغط على شاشة الدماغ.
لا يمكن تسجيل سوى دالة رد نداء واحدة في كل مرة؛ استدعاء
pressedمرة أخرى يحل محل دالة رد النداء السابقة.يجب أن تُرجع دالة الاستدعاء القيمة
void.
عرّف دالة الاستدعاء (خارج نطاق
int main())// Tracks how many times the screen is pressed. void onScreenPressed(void* arg) { int* count = (int*)arg; (*count)++; Brain.Screen.clearScreen(); Brain.Screen.setCursor(1, 1); Brain.Screen.print("Pressed %d times", *count); }قم بتسجيل دالة الاستدعاء داخل الدالة الرئيسية
int main()int main() { int pressCount = 0; // Register the callback and pass a value to update. Brain.Screen.pressed(onScreenPressed, &pressCount); while (true) { wait(20, msec); } }
released#
يسجل وظيفة ليتم استدعاؤها عند تحرير شاشة V5 Brain بعد الضغط عليها.
Available Functions1 — يستدعي دالة عند تحرير الشاشة بعد الضغط عليها.
void released( void (*callback)(void) );
Parameters2 — يستدعي دالة عند تحرير الشاشة بعد الضغط عليها ويمرر وسيطة محددة من قبل المستخدم إلى دالة الاستدعاء.
void released( void (*callback)(void*), void* arg );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
دالة يتم استدعاؤها عند تحرير الشاشة بعد الضغط عليها. |
|
|
دالة يتم استدعاؤها عند تحرير الشاشة بعد الضغط عليها وتستقبل وسيطة محددة من قبل المستخدم. |
|
|
قيمة يحددها المستخدم ويتم تمريرها إلى دالة الاستدعاء عند تحرير الشاشة بعد الضغط عليها. |
هذه الدالة لا تُرجع قيمة.
Notesيتم تنفيذ وظيفة الاستدعاء في كل مرة يتم فيها تحرير شاشة الدماغ بعد الضغط عليها.
لا يمكن تسجيل سوى دالة رد نداء واحدة في كل مرة؛ استدعاء
releasedمرة أخرى يحل محل دالة رد النداء السابقة.يجب أن تُرجع دالة الاستدعاء القيمة
void.
عرّف دالة الاستدعاء (خارج نطاق
int main())// Tracks how many times the screen is released. void onScreenReleased(void* arg) { int* count = (int*)arg; (*count)++; Brain.Screen.clearScreen(); Brain.Screen.setCursor(1, 1); Brain.Screen.print("Released %d times", *count); }قم بتسجيل دالة الاستدعاء داخل الدالة الرئيسية
int main()int main() { int releaseCount = 0; // Register the callback and pass a value to update. Brain.Screen.released(onScreenReleased, &releaseCount); while (true) { wait(20, msec); } }










