در دنیای امروز، گرافیکهای رایانهای نقش بسیار مهمی در انتقال اطلاعات و ایجاد تعاملات بین کاربران و سیستمهای نرمافزاری ایفا میکنند. رسم اشکال گرافیکی در پایتون یکی از مهارتهای اساسی است که به برنامهنویسان امکان میدهد تا با استفاده از کد، تصاویر و نمودارهای متنوعی را خلق کنند. این قابلیت به ویژه در زمینههای آموزشی، شبیهسازی، بازیسازی و مصورسازی دادهها بسیار کاربردی است. در این مقاله، به آموزش رسم اشکال گرافیکی در پایتون پرداخته و با معرفی کتابخانههای مختلفی نظیر turtle, matplotlib و pygame نحوه رسم اشکال هندسی در پایتون را به صورت گام به گام برسی خواهیمکرد. این کتابخانهها هر یک ویژگیها و کاربردهای خاص خود را دارند که بسته به نیاز پروژه میتوان از آنها بهرهبرد.
Matplotlib یک کتابخانه بسیار قدرتمند و معروف برای مصورسازی دادهها در پایتون است که از آن میتوان برای رسم اشکال گرافیکی ساده نیز استفاده کرد. این کتابخانه امکانات گستردهای برای ترسیم نمودارها و اشکال هندسی فراهم میکند.
برای نصب این کتابخانه از دستور زیر استفاده میکنیم:
pip install matplotlib
import matplotlib.pyplot as plt
import numpy as np
رسم دایره #
theta = np.linspace(0, 2*np.pi, 100)
r = 1
x1 = r * np.cos(theta)
x2 = r * np.sin(theta)
()plt.figure
plt.plot(x1, x2)
plt.title("Circle")
رسم مربع #
square = plt.Polygon(((0,0), (1,0), (1,1), (0,1)), closed=True)
plt.gca().add_patch(square)
plt.axis('scaled')
plt.title("Square")
()plt.show
در این بخش، به برسی کد رسم اشکال هندسی با استفاده از کتابخانه Matplotlib میپردازیم. این کد دایره و مربعی را رسم میکند و در یک پنجره نمایش میدهد. در ادامه به توضیح هر بخش از این کد میپردازیم:
import matplotlib.pyplot as plt
import numpy as np
ابتدا کتابخانههای مورد نیاز را وارد میکنیم.
matplotlib.pyplot برای رسم نمودارها و numpy برای محاسبات عددی مورد استفاده قرار میگیرد.
مطالب مرتبط: گرافیک پایتون
theta = np.linspace(0, 2*np.pi, 100)
در این بخش، یک آرایه theta با 100 مقدار که به طور مساوی بین 0 و (pi/2) تقسیم شدهاند را ایجاد میکند. این مقادیر نمایانگر زوایای دایره در رادیان هستند.
r = 1
x1 = r * np.cos(theta)
x2 = r * np.sin(theta)
در این بخش، شعاع دایره r را برابر با 1 قرار میدهیم.
سپس با استفاده از توابع cos و sin از کتابخانه numpy مختصات x و y نقاط دایره را محاسبه میکنیم. x1 و x2 به ترتیب مختصات x و y دایره را تشکیل میدهند.
plt.figure()
plt.plot(x1, x2)
plt.title("Circle")
در این بخش، یک شکل جدید با استفاده از ()plt.figure ایجاد میکنیم. سپس با استفاده از ()plt.plot نقاط دایره را رسم میکنیم. در نهایت عنوان نمودار را به Circle تغییر میدهیم.
square = plt.Polygon(((0,0), (1,0), (1,1), (0,1)), closed=True)
در این بخش، یک چند ضلعی با استفاده از plt.Polygon ایجاد میکنیم. مختصات نقاط مربع به ترتیب (0,1),(1,1),(1,0),(0,0) هستند. پارامتر closed=True نشان میدهد که چند ضلعی باید بسته باشد.
plt.gca().add_patch(square)
plt.axis('scaled')
plt.title("Square")
در این بخش، با استفاده از plt.gca().add_patch(square) مربع را به نمودار اضافه میکنیم. plt.axis('scaled') مقیاس محورهای نمودار را تنظیم میکند تا اشکال به درستی نمایش داده شوند. سپس عنوان نمودار را به Square تغییر میدهیم.
در نهایت، با استفاده از ()plt.show پنجرهای باز میشود که شامل نمودارهای رسم شده است.
Turtle یکی از کتابخانههای استاندارد پایتون است که برای آموزش مفاهیم برنامهنویسی به کودکان و مبتدیان طراحی شده است. این کتابخانه به ما اجازه میدهد تا به سادگی اشکال گرافیکی و هندسی را رسم کنیم.
رسم مربع
import turtle
()t = turtle.Turtle
t.pensize(5)
while True:
t.forward(100)
t.left(90)
if abs(t.pos()) < 1:
break
()turtle.done
برای رسم مربع با استفاده از کتابخانه Turtle در ابتدا باید این کتابخانه را import کنیم پس از دستور زیر استفاده میکنیم :
سپس یک شی از این کتابخانه میسازیم ، کافیست یک متغییر با نام دلخواه ایچاد و کلاس Turtle از کتابخونه turtle را درون این متغیر بریزیم.
با دستور pensize می توانیم اندازه قلم خود را تنظیم کنیم.
حالا با استفاده از حلقه while قسمت اصلی برنامه خود را مینویسیم . در این حلقه ما از دستور forward که برای حرکت دادن قلم خود به سمت جلو است و دستور left که برای چرخش قلم به سمت چپ است نوشتیم و در انتهای حلقه خود، شرط توقف حلقه را نوشتیم ؛ در این شرط گفتهایم که اگر قلم ما به مختصات وسط صفحه رسید حلقه متوقف شود.
:while True
t.forward(100)
t.left(90)
: if abs(t.pos()) < 1
break
در انتهای برنامه خود هم باید دستور done را قرار دهیم تا برنامه ما به درستی اجرا شود.
()turtle.done
برای رسم مثلث ما به همان کد های رسم مربع، اما با کمی تفاوت نیاز داریم.
import turtle
()t = turtle.Turtle
t.pensize(5)
:while True
t.forward(100)
t.left(120)
: if abs(t.pos()) < 1
break
()turtle.done
درواقع کافیست مقدار داخل پرانتز دستور left را به جای 90 به 120 تغییر دهیم.
t.left(120)
برای رسم مستطیل باز هم به همان کد های رسم مربع نیاز داریم اما اینبار از دو دستور forward و left یکبار دیگر هم مینویسیم مانند کد زیر:
import turtle
()t = turtle.Turtle
t.pensize(5)
: while True
t.forward(100)
t.left(90)
t.forward(50)
t.left(90)
: if abs(t.pos()) < 1
break
()turtle.done
نکته مهم در رسم مستطیل این است که باید مقدار درون پرانتزهای دستور forward با یکدیگر متفاوت باشند.
برای رسم دایره ما میتوانیم از دستور circle استفاده کنیم و فقط اندازه شعاع دایره را بدهیم تا برای ما دایره با اندازه های مختلف رسم کند.
import turtle
()t = turtle.Turtle
t.pensize(5)
t.circle(100)
turtle.done()
Pygame مجموعهای از ماژولهای پایتون برای نوشتن بازیهای ویدئویی است که قابلیت رسم گرافیکهای دو بعدی و اشکال هندسی را نیز دارد. این کتابخانه امکانات بسیاری برای رسم اشکال گرافیکی در پایتون فراهم میکند.
بیشتر بخوانید: بهترین رابط گرافیکی پایتون
import pygame
import sys
مقداردهی اولیه#
()pygame.init
screen = pygame.display.set_mode((400,400))
pygame.display.set_caption('Shapes')
تنظیم رنگها#
white = (255, 255, 255)
black = (0, 0, 0)
رسم اشکال#
screen.fill(white)
pygame.draw.circle(screen, black, (200, 200), 50)
pygame.draw.rect(screen, black, (150, 150, 100, 100))
بروزرسانی صفحه نمایش#
pygame.display.flip()
حلقه اصلی برنامه#
:while True
:()for event in pygame.event.get
:if event.type == pygame.QUIT
()pygame.quit
()sys.exit
به بررسی کد رسم اشکال هندسی با استفاده از کتابخانه Pygame میپردازیم. این کد دایره و مربعی را با استفاده از Pygame رسم میکند و در یک پنجره نمایش میدهد. در ادامه به توضیح هر بخش از این کد میپردازیم:
import pygame
import sys
ابتدا کتابخانههای مورد نیاز را وارد میکنیم. pygame برای رسم گرافیک و sys برای مدیریت خروج از برنامه مورد استفاده قرار میگیرند.
()pygame.init
screen = pygame.display.set_mode((400,400))
pygame.display.set_caption('Shapes')
ابتدا ()pygame.init را فراخوانی میکنیم تا کتابخانه Pygame مقداردهی اولیه شود. سپس با استفاده از pygame.display.set_mode((400,400)) یک پنجره با ابعداد 400x400 پیکسل ایجاد میکنیم. همچنین با استفاده از pygame.display.set_caption('Shapes') عنوان پنجره را به Shapes تغییر میدهیم.
white = (255, 255, 255)
black = (0, 0, 0)
در این بخش رنگهای مورد استفاده در برنامه را تعریف میکنیم.
white رنگ سفید با مقدار RGB(255, 255, 255) و black رنگ سیاه با مقدار RGB(0, 0, 0) است.
screen.fill(white)
pygame.draw.circle(screen, black, (200, 200), 50)
pygame.draw.rect(screen, black, (150, 150, 100, 100))
در این بخش ابتدا با استفاده از screen.fill(white) پسزمینه پنجره را به رنگ سفید پر میکنیم. سپس با استفاده از pygame.draw.circle(screen, black, (200, 200), 50) یک دایره سیاه با شعاع 50 پیکسل در مختصات (200,200) رسم میکنیم. در نهایت، با pygame.draw.rect(screen, black, (150, 150, 100, 100)) یک مربع سیاه با طول ضلع 100 پیکسل در مختصات (150, 150) رسم میکنیم.
pygame.display.flip()
در این بخش صفحه نمایش را بروزرسانی میکنیم تا اشکال رسم شده نمایش داده شوند.
اینکار باعث میشود تمام تغییرات انجام شده را به صفحه نمایش منتقل کنیم.
:while True
:() for event in pygame.event.get
if event.type == pygame.QUIT:
() pygame.quit
() sys.exit
در این بخش حلقه اصلی برنامه را تشکیل میدهد که باعث میشود پنجره برنامه باز بماند و به رویدادها پاسخ دهد.
در داخل حلقه، تمام رویدادهای Pygame بررسی میشوند. اگر رویداد pygame.QUIT دریافت شود(مثال وقتی کاربر پنجره را میبندد) pygame.quit() فراخوانی شده و برنامه با sys.exit() خاتمه مییابد.
در این مقاله به بررسی سه کتابخانه مختلف برای رسم اشکال هندسی در پایتون پرداختیم. Matplotlib برای رسم گرافیکهای علمی و اشکال هندسی ساده، Turtle برای آموزش و سرگرمی و Pygame برای توسعه بازیها و برنامههای گرافیکی پیشرفته مناسب هستند. هر یک از این کتابخانهها ویژگیها و کاربردهای خاص خود را دارند که بسته به نیاز پروژه میتوان از آنها استفاده کرد. رسم اشکال گرافیکی در پایتون با استفاده از این کتابخانهها میتواند تجربهای لذتبخش و مفید باشد.
موسسه پل استار یک موسسه شتابدهی استعداد در حوزه برنامهنویسی کودکان و نوجوانان است. این موسسه با برگزاری دورههای برنامهنویسی، رباتیک و هوش مصنوعی مخصوص کودکان و نوجوانان باعث کشف و رشد خلاقیت کودکان و نوجوانان میشود. از این رو پیشنهاد میشود پس از مطالعه این مقاله با مشاورین این موسسه تماس حاصل فرمایید تا اطلاعات تکمیلی را دریافت نمایید.