مكتبة Turtle في لغة بايثون

مكتبة 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() 

الآن، عندما تقوم بتشغيل البرنامج، يجب أن ترى نافذة جميلة فارغة في انتظار إطلاق العنان لإبداعك!

نافذة Turtle

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

دالة ()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() 

دالة backward

أربعة أرباع

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

شاشة  Turtle إلى أربعة أرباع

يمكننا رسم الأرباع الأربعة على لوحة السلحفاة باستخدام هذا الكود الموالي.

عند استدعاء دالة 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()
python turtle right up

التحريك إلى الاسفل بإستخدام right()

from turtle import *

drawing_area = Screen()
drawing_area.setup(width=750, height=500)

shape('circle')
right(90)
forward(75)

done() 
python turtle right up

التحرك إلى اليسار بإستخدام right()

from turtle import *

drawing_area = Screen()
drawing_area.setup(width=750, height=500)

shape('circle')
right(180)
forward(75)

done() 
python turtle left right

من خلال إجراء استدعاءات متعددة للدالتين 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()
Python Turtle Graphics square

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading

Scroll to Top