تمدد هذه الوحدة فئة FrameBuffer في وحدة FrameBuf Micropython. إنه يتيح رسم نص مزدوج وثلاثية ورباعي الحجم وأكبر إلى كائنات الإطار باستخدام الخط المدمج المتوفر في وحدة FrameBuf.
كما تضمنت طرق لرسم مثلثات ودوائر. هذه يمكن أن تكون الخطوط العريضة فقط أو مملوءة.
تم اختبار الوحدة النمطية على Raspberry Pi Pico مع شاشة SH1107 128 × 128 بكسل. يجب أن تعمل مع جميع كائنات Micropython FrameBuffer.
large_text(s, x, y, m [, c=1] [, r=0 [, t=None]])
اكتب النص ، s ، إلى frambuffer باستخدام إحداثيات x و y كركن اليسار العلوي للنص. يمكن تعريف لون النص بواسطة الوسيطة الاختيارية ، c ، ولكنه خلاف ذلك قيمة افتراضية من 1. المعلمة m تقوم بتعيين الحجم المتعدد للنص. الحجم العادي للنص مع طريقة "FrameBuffer.text ()" هو 8x8 بكسل. سيكون هذا مضاعفًا من 1. للحصول على إخراج نص أكبر ، مع أحرف 16 × 16 بكسل ، على سبيل المثال ، استخدم 2 لمعلمة M. المعلمة الاختيارية R تتحكم في دوران النص ، 0 درجة هو الافتراضي ، 90 و 180 و 270 درجة ممكنة. بالإضافة إلى ذلك ، تتيح المعلمة T الأحرف الفردية داخل سلسلة من تدويرها بشكل مستقل إلى 0 أو 90 أو 180 أو 270 درجة.
circle(x0, y0, radius, c [, f:bool] )
ارسم دائرة مركزية على x0, y0 مع radius ولون الحدود المحدد ، c (عدد صحيح). املأ الدائرة اختياريًا بإضافة f=True .
triangle(x0, y0, x1, y1, x2, y2, c [, f:bool] )
ارسم مثلثًا مع رؤوس في النقاط x0,y0 و x1,y1 و x2,y2 ولون الحدود ، c (عدد صحيح). املأ الدائرة اختياريًا بإضافة f=True .
مثال الاستخدام:
# display is a framebuffer object
display.large_text('double', 0, 0, 2, 1) # double size text
display.large_text('size!', 0, 16, 2, 1)
display.large_text('HUGE', 0, 32, 4, 1) # quadruple size text
# draw a circle centred at point (x=64, y=64) with radius 56 and colour 1.
display.circle(64, 64, 56 , c=1)
display.circle(64, 64, 48 , c=1, f=True) # filled circle
# draw a filled triangle with corners at (x=0, y=0), (x=0, y=127) and (x=127, y=127)
# filled with colour 1.
display.triangle(0, 0, 0, 127, 127, 127, c=1, f=True)
يتم تضمين أمثلة إضافية في رمز المثال الخاص ببرنامج عرض SH1107
استخدم ما يلي لاستيراد الوحدة النمطية وتوسيع فئة FrameBuffer.
import framebuf2 as framebuf
ستوفر فئة FrameBuffer هذه الطرق الإضافية إلى جانب جميع الطرق القياسية.
يعمل مع Micropython الإصدار 1.19.1. سيعمل أيضًا مع إصدارات أخرى.