ادامه با Turtle

در جلسه قبل با برخی از دستورات کتابخانه turtle آشنا شدیم. در این جلسه به تکمیل آن‌ها می‌پردازیم.

رسم شکل‌ها

در جلسه قبل دستورات مربوط به جابجایی  و Stamp را آموختیم.

فکر می‌کنید با دستورات بالا می‌توان یک دایره کشید؟

پاسخ شما مثبت است!

احتمالاً می‌پرسید چطوری؟ کار سختی نیست! فقط باید دایره را نقطه به نقطه رسم نمود… بد نیست به عنوان یک خودآزمایی این کار را انجام دهید…

به نظر کار طاقت فرسایی است. یکی از مزایای زبان‌های برنامه‌نویسی این است که ما می‌توانیم به بسیاری از کارها سرعت دهیم. بعداً بیشتر به آن خواهیم پرداخت.

دایره

برای رسم دایره درون محیط Turtle از دستور زیر استفاده می کنیم :

turtle.circle (90)

Python Turtle Circle Updated

به این اَشکال Preset  گفته می‌شود. Preset به معنی از قبل تنظیم‌شده  یا پیش فرض است، یعنی مقادیر، داده‌ها و یا دستوراتی  که از قبل به برنامه داده شده و برای استفاده نیاز به تعریف آن نیست.

نقطه

برای رسم یک نقطه (نقطه‌ها تو پر ولی دایره‌ها توخالی هستند) باید از دستور زیر استفاده کرد:

turtle.dot (20)

رنگ زمینه

شیوه تغییر رنگ قلم را آموختیم و با آن خطوط رنگی رسم کردیم. حال می‌خواهیم رنگ زمینه را تغییر دهیم. با دستور زیر این کار قابل انجام است:

turtle.bgcolor ("green")

Python Turtle Background Color

حال بررسی کنید که به غیر از سه رنگ اصلی  Red , Blue , Green  چه رنگ‌های دیگری را می‌توان به عنوان رنگ زمینه قرار داد؟

عبارت bgcolor در اصل مخفّف  background color(رنگ پس‌زمینه) است

Title

بالای مرورگر خود را نگاه کنید. جایی که Tab های مختلف باز است. بالای زبانه‌ای که الان باز است، چه متنی نوشته شده؟ مثلاً اگر وارد سایت Google شویم ، عنوان بالای زبانه به شکل زیر ظاهر می‌شود:

به نوشته Google در بالای صفحه ، Title (عنوان) گفته می‌شود.

شما می‌توانید برای برنامه‌های نوشته شده در Turtle هم Title تعیین کنید.

turtle.title ("My Turtle Program")

جابجایی ها 

در جلسه پیش با نوعی از جابجایی‌ها ( forward , backward , … ) آشنا شدیم.

نوع دیگری از جابجایی ها، با استفاده از دستور go to صورت می‌گیرد. این دستور نقطه‌ای خاص از صفحه نمایش را در نظر می‌گیرد و به لاک پشت عزیز دستور می‌دهد که به آن نقطه برود.

turtle.goto (x,y)

عدد اول بیانگر مقدار جابجایی در جهت محور X و عدد دوم مقدار جابجایی در جهت محور Y می باشد

توجّه داشته باشید که این دستور، پیکان را در همان جهت که بود به مشخصات تعیین شده می‌فرستد و زاویه نوک پیکان را تغییر نمی‌دهد.

turtle.goto (50,40)

برای بازگردادن پیکان به نقطه اوّلیّه از دستور زیر استفاده می‌کنیم.

turtle.home()

خلاصه‌نویسی دستورات turtle

اگر شما در حال نوشتن یک برنامه بلند در Turtle باشید، متوجّه می‌شوید که برخی از عبارات بسیار بلند و تایپ نمودن آن‌ها زمان‌گیر است. شما باید ابتدای هر دستور، عبارت turtle را بنویسید و این کار بسیار زمان‌بَر است.

برای این‌که بتوانیم در زمان صرفه جویی کنیم، برخی از دستورات را خلاصه می‌کنیم. بعضی از این خلاصه‌ها در خود کتابخانه‌ی turtle موجود است البته در بعضی موارد می‌توانیم خودمان آن خلاصه‌سازی را تعریف ‌کنیم.

Turtle ( صدا کردن لاکی جون! )

برای خلاصه کردن عبارت turtle می‌توانید حرف t را برابر با Turtle قرار بدهید .

t = turtle.Turtle()
t.forward(10)

جابجایی ها ( پیش فرض )

برای کوتاه کردن دستورات جابجایی که در جلسه قبل استفاده کردیم، می‌توان از دستورات زیر استفاده کرد:

  • forward = fd
  •   backward = back = bk
  • right = rt
  • left = lt

مثال:

t.rt (90)
t.fd (100)
t.rt (90)
t.fd (100)
t.rt (90)
t.fd (100)

رنگ کردن داخل شکل

فکر کنید که از شما خواسته شود، یک مربّع تو پر رسم کنید. مراحل کار چیست؟

ابتدا اضلاع مربّع را رسم می‌کنید.

سپس داخل آن‌را رنگ می‌نمایید.

همین ایده در برنامه نویسی با turtle هم قابل انجام است.

اوّل باید به ‌turtle بگویید که من قصد دارم این شکل را در پایان رنگ کنی.

سپس شروع به رسم شکل کنید.

در آخر هم به او بگویید که شکل تمام و آماده‌ی رنگ آمیزی شده‌است.

شروع رنگ آمیزی با دستور :

turtle.begin_fill()

پایان رنگ آمیزی با :

turtle.end_fill()

Python Turtle Begin Fill End Fill New

نوشتن کد ها در یک خط

اگر کد‌های قبلی را مرور کنید، به خاطر می‌آورید که برخی از کد ها با Pen شروع می‌شد مثل : Pensize , Penshape , Pencolor. تمامی این دستورات مربوط به pen هستند . شما می توانید دستوراتی که مربوط به آن هستند را به صورت زیر خلاصه کنید:

شکل معمولی:

t.pencolor("purple")
t.fillcolor("orange")
t.pensize(10)
t.speed(9)

شکل خلاصه شده:

t.pen(pencolor="purple", fillcolor="orange", pensize=10, speed=9)