آموزش رسم اشکال گرافیکی در پایتون
ویدئو های آموزشی
پنج شنبه 10 خرداد 1403
جهت مطالعه این مقاله به 10 دقیقه زمان نیاز دارید
آنچه در این مقاله خواهیم خواند:

مقدمه

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

 

 

کتابخانه Matplotlib

Matplotlib یک کتابخانه بسیار قدرتمند و معروف برای مصورسازی داده‌ها در پایتون است که از آن می‌توان برای رسم اشکال گرافیکی ساده نیز استفاده کرد. این کتابخانه امکانات گسترده‌ای برای ترسیم نمودارها و اشکال هندسی فراهم می‌کند.

برای نصب این کتابخانه از دستور زیر استفاده می‌کنیم:

pip install matplotlib

 

 

 

رسم دایره و مربع با استفاده از 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

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

Pygame مجموعه‌ای از ماژول‌های پایتون برای نوشتن بازی‌های ویدئویی است که قابلیت رسم گرافیک‌های دو بعدی و اشکال هندسی را نیز دارد. این کتابخانه امکانات بسیاری برای رسم اشکال گرافیکی در پایتون فراهم می‌کند.

رسم مربع با استفاده از 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 برای توسعه بازی‌ها و برنامه‌های گرافیکی پیشرفته مناسب هستند. هر یک از این کتابخانه‌ها ویژگی‌ها و کاربردهای خاص خود را دارند که بسته به نیاز پروژه می‌توان از آنها استفاده کرد. رسم اشکال گرافیکی در پایتون با استفاده از این کتابخانه‌ها می‌تواند تجربه‌ای لذت‌بخش و مفید باشد.

همچنین در ادامه بخوانید:
آموزش چاپ اعداد زوج در پایتون
آموزش چاپ اعداد زوج در پایتون
در این مقاله، به طور خاص به آموزش چاپ اعداد زوج در پایتون می‌​پردازیم. این موضوع مهم به ما امکان می​‌دهد تا با یکی از اصول ابتدایی برنامه‌​نویسی در پایتون آشنا شویم و با استفاده از این زبان، عملیات ساده چاپ اعداد زوج را انجام دهیم. بنابراین، در این مقاله به توضیح روش‌​های مختلف برای انجام این کار می​‌پردازیم تا باهم بتوانیم به راحتی اعداد زوج را در پایتون چاپ کرده و از این مهارت در پروژه​‌ها و برنامه​‌های خود استفاده کنیم.
آموزش ساخت جدول ضرب در پایتون + معرفی کدهای آن
آموزش ساخت جدول ضرب در پایتون + معرفی کدهای آن
ساخت جدول ضرب یکی از مهم‌ترین مباحث ریاضی است که اساسی‌ترین مفهوم آن را برای دانش‌آموزان میسر می‌کند. در این مقاله، ما به بررسی و آموزش ساخت جدول ضرب در پایتون با روش‌های مختلف پیاده‌سازی آن می‌پردازیم.
آموزش حذف کاراکتر تکراری از رشته در پایتون
آموزش حذف کاراکتر تکراری از رشته در پایتون
در پروسه‌های پردازش متن، اغلب نیاز است که کاراکتر های تکراری یا غیرمورد نیاز از رشته حذف شوند. در این مقاله، به روش های مختلف حذف کاراکتر تکراری از رشته در پایتون می‌پردازیم. ما از روش هایی مانند استفاده از متد‌های maketrans، replace و translate برای این کار استفاده خواهیم‌کرد.