مكتبة Turtle هي مكتبة رسومات غرافيكية في لغة البرمجة بايثون. توفر المكتبة مجموعة من الدوال التي يمكن استخدامها لإنشاء رسومات غرافيكية بسيطة أو معقدة.
تستند مكتبة Turtle إلى مفهوم “السلحفاة” (Turtle). تخيل سلحفاة صغيرة على قطعة من الورق. يمكنك استخدام قلم الرصاص الخاص بها لرسم أشكال مختلفة على الورق. مكتبة Turtle توفر لك طريقة برمجية لإنشاء رسومات مماثلة.
إستدعاء مكتبة Turtle
لإستدعاء مكتبة Turtle في بايثون، يمكنك استخدام السطر التالي:
from turtle import *
الأمر from
يعني استيراد شيء ما من خارج الملف الحالي. بعد ذلك يأتي اسم الوحدة/المكتبة التي نريد الاستيراد منها، وهي turtle. يتيح لنا استخدام الكلمة الأساسية import
الوصول إلى كل التعليمات البرمجية من وحدة turtle. أما علامة (*) في نهاية السطر لإخبار بايثون باستيراد كل شيء من تلك الوحدة.
ضبط حجم الشاشة
ستقوم Turtle بإعداد نافذة تلقائيًا لك عند تشغيل البرنامج. و إذا كنت تريد تعيين حجم نافذة مخصص للاستخدام مع برنامجك، فيمكنك القيام بذلك باستخدام Screen()
و التابع .setup()
و من خلال الكود التالي ستكون النتيجة نافذة Turtle يبلغ عرضها 750 وارتفاعها 500.
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
بعد تشغيل الكود سترى نافذة البرنامج تومض على الشاشة لجزء من الثانية ثم تختفي. و هذا بالطبع ليس جيد، و لإصلاح ذلك، يمكننا استخدام التابع done()
.
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
done()
الآن، عندما تقوم بتشغيل البرنامج، يجب أن ترى نافذة جميلة فارغة في انتظار إطلاق العنان لإبداعك!

بعد أن إنتهينا من إنشاء النافذة الخاصة بنا سنرى كيفية تحريك السلحفاة . تمثل السلحفاة القلم أو العلامة غير المرئية المستخدمة لرسم جميع الخطوط والأشكال والألوان على النافذة. لتحريك السلحفاة، عليك أولاً التأكد من أنك قمت بإطلاق نافذة فارغة وهذا ما قمنا به.
دالة ()forward
لجعل السلحفاة تتحرك في بايثون، يمكننا استخدام دالة forward()
. حيث سنقوم بتمرير قيمة عددية 75. وهذا يخبر السلحفاة بالتحرك 75 خطوة بدءًا من منتصف اللوحة. و الخطوة تعادل بكسل.
افتراضيًا، تكون السلحفاة في الواقع على شكل سهم، وتتحرك إلى اليمين ما لم تغير اتجاه السلحفاة.
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
forward(75)
done()

تغيير السلحفاة
يمكننا تغيير القلم من سهم إلى شيء آخر. لذا دعونا نجعل من القلم سلحفاة حقيقية. و للقيام بذلك، يمكننا استخدام دالة الشكل (). يمكن لدالة shape()
تغيير السهم الافتراضي إلى شيء آخر مثل مربع أو دائرة أو حتى سلحفاة! دعونا نجرب بعض الاختلافات.
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('turtle')
forward(75)
done()

المربع
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('square')
forward(75)
done()

الدائرة
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('circle')
forward(75)
done()

دالة backward() في مكتبة turtle
تعمل دالة backward()
تمامًا مثل دالة forward()
ولكن في الاتجاه المعاكس. تصور نفسك تمشي للأمام، أو تمشي للخلف. إنه نفس الشيء بالنسبة لسلحفاة بايثون. هناك إختصارين من backward()
وهما bk()
و back()
.
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('circle')
backward(75)
done()

أربعة أرباع
تنقسم شاشة Turtle إلى أربعة أرباع بواسطة محوري x وy، وتبدأ السلحفاة دائمًا عند 0,0 وهو المركز الدقيق للنافذة.

يمكننا رسم الأرباع الأربعة على لوحة السلحفاة باستخدام هذا الكود الموالي.
عند استدعاء دالة home()
، يتم إرجاع السلحفاة إلى 0,0 وهو مركز اللوحة.
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=500, height=500)
forward(250)
back(500)
home()
left(90)
forward(250)
back(500)
home()
done()

دالة goto() في مكتبة turtle
بمجرد أن تفهم كيفية وجود إحداثيات x وy على اللوحة، يمكنك استخدام دالة goto()
للانتقال إلى مكان معين على الشاشة. لقد قمنا للتو بتقسيم الشاشة إلى أربعة أرباع، والآن سيقوم البرنامج التالي بنقل السلحفاة إلى المركز الدقيق لكل ربع واحد تلو الآخر مما يؤدي إلى مربع. تقع كل زاوية من زوايا المربع في منتصف الأرباع 1 و2 و3 و4 بالضبط.
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=500, height=500)
forward(250)
back(500)
home()
left(90)
forward(250)
back(500)
home()
goto(125, 125)
goto(-125, 125)
goto(-125, -125)
goto(125, -125)
goto(125, 125)
done()

دالة setx()
تقوم هذه الدالة بنقل السلحفاة إلى الموقع المحدد على محور x.
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=500, height=500)
setx(100)
done()

دالة sety()
تقوم هذه الدالة بنقل السلحفاة إلى الموقع المحدد على محور y.
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=500, height=500)
sety(100)
done()

دالة speed()
لجعل السلحفاة ترسم بشكل أسرع أو أبطأ، يمكنك استخدام دالة speed()
. القيمة الافتراضية هي 3، والقيم المحتملة هي من 1 إلى 10 حيث تكون 10 هي الأسرع.
دوال right() و left()
لتغيير إتجاه السلحفاة، يمكنك استخدام اكل من الدالتين right()
أو left()
. تعمل هاتين الدالتين فقط عندما تقوم بتمرير قيمة رقمية تحدد عدد الدرجات المطلوب تحويلها. دعونا نرى بعض الأمثلة حول كيفية تحريك السلحفاة لأعلى ولأسفل ولليسار ولليمين باستخدام الدالتين right()
و left()
.
التحريك إلى الأعلى بإستخدام right()
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('circle')
right(270)
forward(75)
done()

التحريك إلى الاسفل بإستخدام right()
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('circle')
right(90)
forward(75)
done()

التحرك إلى اليسار بإستخدام right()
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('circle')
right(180)
forward(75)
done()

من خلال إجراء استدعاءات متعددة للدالتين right()
و forward()
، يمكننا رسم شكل. الكود أدناه ينتج مربعا:
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('circle')
right(90)
forward(150)
right(90)
forward(150)
right(90)
forward(150)
right(90)
forward(150)
done()

اكتشاف المزيد من بايثون العربي
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.
شكرا