کد رسم شکل در پایتون – کد ترسیم اشکال گرافیکی مختلف
رسم شکل در پایتون به روشهای گوناگونی انجام میشود. یکی از بهترین راههای انجام این کار استفاده از کتابخانه Turtle است. با استفاده از ماژول Turtle میتوان اشکال گرافیکی مانند خطها یا شکلهای متفاوتی را بر روی بوم ایجاد کرد. با حرکت دادن turtle بر روی بوم میتوانیم خطوطی را از نقطهای به نقطه دیگر رسم کنیم. کد رسم شکل در پایتون را میتوان برای هر turtle به صورت جداگانه نوشت. یعنی در واقع بر روی هر بوم میتوانیم چند turtle به صورت همزمان داشته باشیم. بنابراین با کمک این روش میتوان اشکال مختلفی مانند مربع، مثلث، مستطیل و غیره را رسم کرد.
در این مطلب از مجله فرادرس درباره اشکال هندسی و رسم آنها در پایتون صحبت کردهایم. سپس کد رسم شکل در پایتون مربوط به چند مورد از مشهورترین اشکال دوبعدی هندسی را با کمک کتابخانه turtle نوشتیم . در آخر هر مرحله هم بعد از اجرای کد نتیجه را نشان دادیم. با توجه به مثالهای زده شده تقریبا میتوانید سایر اشکال گرافیکی را نیز به صورت دلخواه رسم کنید.
کد رسم شکل در پایتون
کد رسم شکل در پایتون که معمولا به کمک کتابخانههایی مانند Turtle اجرا میشوند به کدی گفته میشود که مشخصات مربوط به یکی از اشکال هندسی را مشخص کرده و در اجرا، شکل مورد نظر را رسم میکند. این شکلها برای نمایش به کاربر بر روی پنجره جدایی به نام بوم یا Canvas رسم میشوند.
پایتون به عنوان زبان برنامهنویسی چندکاره میتواند شکلهای مختلفی را رسم کند. بهترین ابزار برای رسم اشکال در پایتون استفاده از ماژول Turtle است. کدهای مربوط به رسم شکل در این ماژول بسیار ساده و قابل درک هستند.
با کمک پایتون میتوانیم انواع زیادی از برنامههای کاربردی را مثل پالت رنگی ایجاد کنیم. در ادامه مطلب روش ساخت بوم و turtle را در کتابخانه Turtle شرح دادهایم.
ساخت بوم و turtle
در زمان رسم اشکال گرافیکی با استفاده از ماژول Turtle قبل از همه چیز به بوم نیاز داریم. بوم به عنوان شیء از پکیج Turtle برای رسم اشکال استفاده میشود. turtle هم به همان نماد لاکپشت که در وسط بوم قرار میگیرد گفته میشود. این لاکپشت نقش قلم را بر روی بوم بازی میکند. البته میتوان با کدهای خاصی شکل لاکپشت را به دایره، پیکان و سایر اشکال تبدیل کرد. اما معمولا با همان نام turtle نامیده میشود. اکنون برای آموزش ساخت بوم و turtle، طبق مراحل زیر قدمبهقدم بهپیش بروید.
- مرحله اول: فایل جدیدی به نام «shapes.py» ایجاد کنید.
- مرحله دوم: در بالای فایل ماژول Turtle را مانند کد زیر، وارد کنید.
1import turtle
- مرحله سوم: به کمک کد زیر، پنجره جدیدی را با استفاده از ماژول Turtle ایجاد کنید. این پنجره به عنوان «بوم» (Canvas) برای حرکت turtle استفاده میشود.
1window = turtle.Screen()
2window.bgcolor("white")
- مرحله چهارم: شیء جدیدی از کلاس turtle ایجاد کنید. برای ایجاد کردن این شیء بهتر است که شکل و رنگی مورد نظر نیز مشخص شود، مخصوصا زمانی که بخواهیم از چند turtle بر روی یک بوم به صورت همزمان استفاده کنیم.
1turtle_1 = turtle.Turtle()
2turtle_1.shape("turtle")
3turtle_1.color("red")
- مرحله پنجم: در انتهای فایل باید از تابع exitonclick() استفاده کرد. با کمک این تابع میتوان بوم را باز نگهداشت. بوم را فقط زمانی میتوان بست که بر روی آن کلیک کنید. در ضمن، باید مطمئن شوید که این خط از کد حتما در انتهای برنامه نوشته شده باشد. در غیر این صورت با پیغام خطا روبهرو میشوید.
1window.exitonclick()
- مرحله ششم: ترمینال - اگر از لینوکس استفاده میکنید - یا «خط فرمان» (Command Prompt) - برای سیستم عامل ویندوز - را باز کنید. سپس کرسر فرمان را به سمت پوشهای هدایت کنید که اسکریپت پایتون خود را در آنجا ذخیره کردهاید. برای مثال، اگر فایل پایتون خود را به روی دسکتاپ در سیستم عامل ویندوز کامپیوتر ذخیره کردهاید، دستور نوشته شده باید چیزی شبیه به مورد زیر باشد.
1cd C:\Users\Sharl\Desktop
- مرحله هفتم: فرمان پایتون را برای باز کردن بوم turtle اجرا کنید. به صورت پیشفرض، همیشه جهت اولیه turtle مانند تصویر زیر به سمت راست خواهد بود.
آموزش های مقدماتی زبان برنامه نویسی پایتون با فرادرس
زبان برنامه نویسی پایتون به یکی از مشهورترین زبانهای برنامهنویسی بین دانشجویان و فعالان حوزه فناوری تبدیل شده است. از طرفی به دلیل فرایند آموزش و استفاده بسیار سادهای که دارد، مورد علاقه افراد تازه وارد به حوزه برنامه نویسی قرار میگیرد. از طرف دیگر هم به دلایلی مانند قدرت بالا، کتابخانههای واقعا کاربردی، ابزارهای بسیار متنوع، انعطافپذیری و غیره به یکی از گزینههای مورد علاقه حرفهایها در زمینههای تجاری، تکنولوژیک و غیره تبدیل شده است. برای همین، دوره آموزش زبان پایتون یکی از پرطرفدارترین و مهمترین دورههای موجود است.
فرادرس به عنوان بزرگترین تولید کننده فیلمهای آموزشی به زبان فارسی تقریبا در همه حوزهها به تولید محتواهای متنی و ویدئویی پرداخته است. فیلمهای آموزشی فرادرس دقت و حساسیت بالایی را در زمان تولید بر روی کیفیت و محتوی آموزش مورد نظر، اعمال میکنند. زبان پایتون هم یکی از همین محتواهای تولید شده در فرادرس است. این سری از فیلمهای آموزشی به دلیل حساسیت بالا با تمرکز و کیفیت بیشتری تولید شدهاند.
در ادامه چند مورد از فیلمهای آموزشی فرادرس را درباره دورههای مقدماتی پایتون معرفی کردهایم. البته بهترین شروع برای یادگیری پایتون با فرادرس استفاده از فیلم رایگان آموزش برنامه نویسی سریع و آسان پایتون در ۱۴۰ دقیقه است. در صورت تمایل با کلیک بر روی تصویر بالا میتوانید وارد صفحه اصلی این مجموعه آموزشی شده و از فیلمهای بیشتر دیدن کنید.
- فیلم آموزش برنامه نویسی پایتون دوره مقدماتی فرادرس
- فیلم آموزش برنامه نویسی پایتون Python دوره تکمیلی، بخش یکم فرادرس
- فیلم آموزش حل مسائل فیزیک با پایتون، بخش یکم فرادرس
- فیلم آموزش رایگان کتابخانه Datetime در پایتون برای مدیریت زمان فرادرس
مثال های متنوع از کد رسم شکل در پایتون
با استفاده از کد رسم شکل در پایتون میتوان تقریبا همه اشکال هندسی را رسم کرد. همینطور که بالاتر گفته شد یکی از بهترین ابزار برای رسم گرافیکی اشکال هندسی کتابخانه Turtle است. در صورتی که علاقهمند به یادگیری این کتابخانه به صورت حرفهای هستید پیشنهاد میکنیم فیلم آموزش کتابخانه گرافیکی لاک پشت Turtle Module در پایتون را از فرادرس مشاهده کنید. برای کمک به مخاطبان مجله، لینک مربوط به این فیلم را در ادامه قرار دادهایم.
در این بخش کد رسم چند مورد از مرسومترین اشکال هندسی را نمایش داده و بر روی بوم turtle رسم کردیم. به توجه به اشکال مورد نیاز خود میتوانید به دلخواه اندازه، تعداد و زوایای ضلعها را تغییر داده و اشکال جدید رسم کنید.
چگونه در پایتون مربع و مستطیل رسم کنیم؟
خیلی ساده، میتوانیم با استفاده از turtle بر روی بوم به رسم اشکالی مانند مربع و مستطیل بپردازیم. از توابع forward() و backward() استفاده کنید تا turtle خود را بر روی بوم حرکت دهید. همچنین با بهکارگیری توابع left() یا right() نیز میتوانید جهت turtle را به سمت چپ یا راست، تغییر دهید.
در گام اول: از آنجا که در حال حاضر turtle رو به جهت اولیه و پیشفرض خود قرار گرفته است، به سمت جلو به اندازه ۱۰۰ پیکسل حرکت کنید. با این کار اولین خط مربوط به مربع رسم میشود.
1turtle_1.forward(100)
گام دوم: در حرکت بعدی به اندازه ۹۰ درجه به سمت راست بچرخید. با این کار جهت turtle رو به پایین قرار میگیرد. دوباره به اندازه ۱۰۰ پیکسل به سمت جلو حرکت کنید تا دومین خط مربع هم رسم شود.
1turtle_1.right(90)
2turtle_1.forward(100)
گام سوم: همین رفتار را با چرخش به راست به اندازه ۹۰ درجه و حرکت به جلو به مقدار ۱۰۰ پیکسل ادامه دهید تا بقیه خطوط مربع هم رسم شوند. برای اینکه شکل نهایی مربع باشد، حتما باید دقت کنیم که اندازه هر ضلع برابر با ۱۰۰ پیکسل و زوایا برابر با ۹۰ درجه باشند.
1turtle_1.right(90)
2turtle_1.forward(100)
3turtle_1.right(90)
4turtle_1.forward(100)
گام چهارم: اما برای اینکه این شکل را به مستطیل تغییر دهیم، کد را به صورتی اصلاح میکنیم که دو ضلع روبهروی هم طول بیشتری داشته باشند. در کد زیر تمام خط کدها را کنار یکدیگر نمایش دادهایم.
1turtle_1.forward(100)
2turtle_1.right(90)
3turtle_1.forward(200)
4turtle_1.right(90)
5turtle_1.forward(100)
6turtle_1.right(90)
7turtle_1.forward(200)
گام پنجم: دوباره با استفاده از خط فرمان یا ترمینال، فرمان پایتون را اجرا کنید تا بوم باز شده و مستطیل رسم شده را مانند تصویر زیر ببینید.
کتابخانه Turtle در پایتون به همراه ویژگیهای خاصی عرضه شده تا برای کسانی که بهتازگی وارد دنیای برنامهنویسی شدهاند فعالیت لذتبخشی فراهم کند. این کتابخانه به صورت پیشفرض در کنار پایتون بر روی کامپیوتر نصب میشود. در صورتی که هنوز از این ماژول در سیستم خود استفاده نکردهاید، پشنهاد میکنیم با مطالعه مطلب کتابخانه Turtle در پایتون چیست؟ از نصب تا کاربرد و استفاده به زبان ساده از مجله فرادرس با این ماژول بیشتر آشنا شده و از استفاده آن لذت ببرید.
کد رسم شکل در پایتون برای ترسیم مثلث
در این بخش باید شکل مثلث را با استفاده از توابع forward() و backward()و left() یا right() رسم کنید. از آنجا که الان مربعی را از نقطه شروع پیشفرض حرکت turtle بر روی بوم رسم کردهاید مثلث باید بر روی قسمت دیگری از بوم رسم شود.
گام اول: شیء turtle جدیدی با نام جدید ایجاد کنید. در مثال نمایش داده شده پایین به صورت دلخواه از نام turtle_2 استفاده کردهایم. میتوانید شکل turtle را به دلخواه خود تغییر دهید. در کد زیر بهتر است برای تنوع به جای لاکپشت از شکل «پیکان» با کد turtle_2.shape("arrow") استفاده کنید.
1turtle_2 = turtle.Turtle()
2turtle_2.shape("arrow")
3turtle_2.color("blue")
گام دوم: برای اینکه شیء turtle بر روی بوم موقع حرکت خطی رسم نکند باید قلم را از روی بوم برداشت. برای برداشتن قلم از روی بوم از تابع penup() استفاده کنید.
1turtle_2.penup()
گام سوم: شیء را به نقطه دیگری بر روی بوم حرکت دهید. بوم از صفحه دکارتی برای محاسبه مختصات استفاده میکند. بنابراین، نقطه شروع و مرکز بوم به خانه (۰،۰) را نشان میدهد. مختصات (۲۰۰ ،۲۵۰-) به گوشه بالا و سمت چپ بوم اشاره میکند.
1turtle_2.goto(-250, 200)
گام چهارم: الان که به موقعیت جدید رسیدیم با استفاده از تابع pendown() قلم را به روی بوم میگذاریم. در نتیجه دوباره حرکات turtle باعث رسم خط بر روی بوم میشود.
1turtle_2.pendown()
گام پنجم: برای رسم اضلاع مثلث در هربار باید turtle را به اندازه ۱۲۰ درجه بچرخانیم، بعد از هر چرخش هم خطی را برای رسم کردن یکی از ضلعهای مثلث بر روی بوم میکشیم.
1turtle_2.forward(100)
2turtle_2.left(120)
3turtle_2.forward(100)
4turtle_2.left(120)
5turtle_2.forward(100)
6turtle_2.left(120)
گام ششم: البته به عنوان روش جایگزین میتوان با استفاده از حلقه for هم مثلث را رسم کرد.
1for i in range(3):
2 turtle_2.forward(100)
3 turtle_2.left(120)
گام هفتم: داخل خط فرمان یا ترمینال دوباره فرمان پایتون را برای اجرا فایل ذخیره شده، نوشته و اجرا کنید. با اجرای این فایل بوم باز شده و میتوانید مثلث رسم شده را در کنار مستطیل ببینید.
چگونه دایره رسم کنیم
از تابع circle() برای رسم دایره استفاده میکنیم. با وارد کردن عددی به عنوان پارامتر به این تابع میتوان قُطر مورد نظر را برای دایره تعیین کرد.
گام اول: در ابتدای کار باید شیء turtle دیگری را برای رسم دایره ایجاد کنید. به همین ترتیب بهتر است که از رنگ و شکل جدیدی هم برای آن استفاده شود.
1turtle_3 = turtle.Turtle()
2turtle_3.shape("circle")
3turtle_3.color("green")
گام دوم: turtle را به بخش دیگری از بوم منتقل کنید. برای جلوگیری کردن از رسم خط در زمان حرکت turtle حتما از تابع penup() استفاده کنید. بعد از اینکه turtle را منتقل کردید، دوباره قلم را بر روی بوم قرار دهید.
1turtle_3.penup()
2turtle_3.goto(-100, 50)
3turtle_3.pendown()
گام سوم: از تابع circle() برای رسم دایره بر روی بوم استفاده کنید. فراموش نکنید که عددی باید به عنوان قطر دایره به تابع ارسال شود.
1turtle_3.circle(50)
گام چهارم: دوباره دستور اجرای فایل پایتون را با استفاده از خط فرمان یا ترمینال اجرا کنید. با این کار بوم باز شده و میتوانید دایره رسم شده را مانند تصویر زیر ببینید.
روش رسم اشکالی مانند شش ضلعی و هشت ضلعی
برای رسم اشکالی مانند ششضلعیها و هشتضلعیها میتوانید از حلقه For پایتون - مانند آنچه که در مثال رسم مثلث استفاده شد - استفاده کنید. میتوانید تعداد مشخصی از اضلاع را در نظر بگیرید و آن اضلاع را به اندازه مساوی هم رسم کنید.
گام اول : در اول کار باید شیء turtle جدیدی را ایجاد کرده و تنظیمات مربوط به شکل و رنگ آن را هم اعمال کنید.
1turtle_4 = turtle.Turtle()
2turtle_4.shape("turtle")
3turtle_4.color("purple")
گام دوم: باز هم باید شی turtle را به موقعیت دیگری بر روی بوم منتقل کنید.
1turtle_4.penup()
2turtle_4.goto(150,200)
3turtle_4.pendown()
در شکل شش ضلعی در نقاط رسیدن خطوط به یکدیگر، اندازه هر زاویه برابر با ۱۲۰ درجه است. بعد از اینکه خطی را رسم کردید turtle را به اندازه ۶۰ درجه به سمت راست بچرخانید. اکنون خط بعدی را هم رسم کنید. این عملیات را باید برای تمام اضلاع شش ضلعی انجام دهید.
نکته مهم: زاویه چرخش turtle مکمل زاویه بین اضلاع شکل هندسی مورد نظر است. یعنی برای اینکه بین دو ضلع ۱۲۰ درجه زاویه ایجاد شود، turtle باید به اندازه ۶۰ درجه بچرخد.
گام دوم: بخاطر داشته باشید که یکی از بهترین روشهای انجام کارهای تکراری در کدها استفاده از حلقهها در برنامه نویسی است.
1for i in range(6):
2 turtle_4.forward(100)
3 turtle_4.right(60)
گام سوم: سایر انواع اشکال هندسی را نیز میتوانید با اضلاع مساوی رسم کنید. فقط کافی است که برای بدست آوردن زاویه چرخش turtle در گوشهها عدد ۳۶۰ را تقسیم بر تعداد ضلعها کنید.
برای مثال در شکل هشت ضلعی اندازه زاویه تمام گوشهها برابر با ۱۳۵ درجه است. پس باید برای هر کدام از ضلعها - یعنی ۸ بار - به مقدار ۴۵ درجه به سمت راست چرخیده و خط متناظر با آن را رسم کنید.
1for i in range(8):
2 turtle_4.forward(100)
3 turtle_4.right(45)
گام چهارم: دستور پایتون برای اجرای فایل را با استفاده از خط فرمان یا ترمینال برای بار دیگر اجرا کنید. با اجرای این دستور بوم باز شده و میتوانید هشت ضلعی یا شش ضلعی رسم شده را در کنار سایر اشکال ببینید.
یادگیری پایتون با فیلم های آموزشی پروژه محور
همیشه برای یادگیری، باید از روشهایی استفاده کرده که به نوعی آموختههای قبلی را به کار بگیرد. این مسئله به جز یادآوری و مرور مطالب قبلی باعث بهوجود آمدن سوالهای جدید، کسب تجربه و نهادینه شدن مطالب آموخته شده نیز میشود. به همین منظور بخصوص در برنامهنویسی باید از مرحلهای به بعد به سراغ آموزشهای پروژه محور رفت. به کمک این سری از آموزشها علاوه بر امتیازات ذکر شده میآموزیم که چگونه از ابزار و تکنولوژیهای مختلف به صورت ترکیب شده با یکدیگر استفاده کنیم.
در این قسمت از مطلب، به عنوان آموزشهای پروژه محور زبان پایتون، چند مورد از فیلمهای آموزشی پایتون در فرادرس را معرفی کردهایم. این فیلمهای آموزشی از ابتدا تا انتهای مراحل برنامهنویسی و توسعه پروژه را نمایش میدهند. همچنین از تکنیکهای ساده در برنامهنویسی مانند تعریف متغیر تا تکنیکهای پیچیده، در این پروژهها استفاده شدهاند. به همین دلیل، گزینههای بسیار مناسبی برای تمرین آموختهها توسط دانشجویان زبان برنامهنویسی پایتون هستند.
- فیلم آموزش درباره هفت پروژه کاربردی با تکنولوژی شی گرایی در پایتون فرادرس
- فیلم آموزش پروژه محور ساخت کتابخانه با کتابخانه Tkinter در پایتون فرادرس
- فیلم آموزش ساخت بازی Snake در پایتون فرادرس
- فیلم آموزش پروژه محور پایتون درباره طراحی گرافیکی با PyQt و بدون کدنویسی با QT Designe فرادرس
- فیلم آموزش پروژه محور پایتون درباره ساخت دستیار صوتی، از طراحی توابع تا اجرای برنامه در فرادرس
جمع بندی
رسم اشکال هندسی در پایتون یکی از مسئلههای سادهای است که معمولا برای تمرین کدنویسی، استفاده از حلقهها و رعایت الگوهای طراحی به دانشجویان پایتون داده میشود. تقریبا بهترین ابزار برای ساخت اشکال هندسی از طریق نوشتن کد رسم شکل در پایتون، استفاده از همین کتابخانه Turtle است.
در این مطلب از مجله فرادرس با موضوع رسم شکل در پایتون آشنا شدیم. سپس چند مورد از رایجترین اشکال هندسی از قبیل مربع، مستطیل، دایره، مثلث و غیره را مثال زده و کد مربوط به رسم شکلشان را نمایش دادیم.