Pythonda grafika. (Turtle модули билан ишлаш).
Turtle - bu Python uchun maxsus oynada grafik ob'ektlar, rasmlar yaratishga imkon beradigan modul. Modul bilan ishlashni boshlash uchun Turtle () ob'ektini kiritish kerak.
t = turtle.Turtle(), t =Turtle()
Turtle modulida kerakli o'lchamdagi oynani o'rnatish uchun
t.screen.setup (x, y)
buyrug'idan foydalanamiz, bu yerda x va y - piksellarda oynaning kengligi va balandligi.
Ushbu holatda biz 800 × 800 piksel o'lchamdagi oynani ochamiz. Buning uchun t.screen.setup (800, 800) funksiyani bajartiramiz.
Python-da Turtle moduli bo'lgan dastur to'g'ri ishlashi uchun siz har doim dasturning oxirida ikkita buyruq yozishingiz kerak.
t.screen.exitonclick () # Python dasturi sichqonchani bosish bilan dastur bajarilgandan so'ng javob beradi.
t.screen.mainloop () # dastur bajarilishini to’xtatadi.
Turtle modulining grafikasi uchun boshlangich koordinata oynaning markazi hisoblanadi. X o'qining yo'nalishi chapdan o'ngga, Y o'qining yo'nalishi pastdan yuqoriga qarab belgilanadi.
Turtle modulining grafikasi uchun chizmalar oynada "toshbaqa" ni ko’chirish orqali paydo bo'ladi, toshbaqa chiziq chizadi.
Grafik oynada toshbaqa oldinga harakat qilish uchun t.fd(x)(forward) buyrug’idan foydalanamiz, bu yerda x – toshbaqa harakatlanadigan piksellar soni. Orqaga siljish uchun esa t.bk(x) (back) buyrug'idan foydalanamiz. Toshbaqani berilgan nuqtaga o'tkazish uchun t.goto(x,y) buyrig’idan foydalanamiz, bu yerda (x,y) – toshbaqa o’tkazilishi kerak bo'lgan nuqtaning koordinatalari.
Misol:
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
t.fd(200)
t.screen.exitonclick()
t.screen.mainloop()
Python da Turtle modulidagi toshbaqa harakatlanayotganda u o’zining izini (chiziq) qoldiradi. Toshbaqani izini ko'rsatmasdan harakatlantirish uchun t.up() buyrug'ini ishlatishimiz kerak. Toshbaqani yana o'z yo'li bo'ylab izini hosil qilish uchun t.down() buyrug'idan foydalanamiz.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
for i in range(20):
t.fd(8)
t.up()
t.fd(8)
t.down()
t.screen.exitonclick()
t.screen.mainloop()
Pythonda Turtle modulida nafaqat to'g'ri chiziqlar chizish, balki egri chiziqlar ham hosil qilish mumkin. Uning uchun t.left(x) (toshbaqa chapga buriladi) va t.right(x) (o'ngga buriladi) buyruqlaridan foydalanamiz, bu yerda x – burilish burchagi (gradusllarda).
Misol: To’g’ri tor’tburchak chizish:
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
t.fd(100)
t.left(90) # ushbu amalni yana 3 marta takrorlansa, to’g’ri to’rtburchak hosil bo’ladi.
t.fd(100)
t.left(90)
t.fd(100)
t.left(90)
t.fd(100)
t.left(90)
t.screen.exitonclick()
t.screen.mainloop()
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
for a in range(4):
t.fd(100)
t.left(90)
t.screen.exitonclick()
t.screen.mainloop()
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
def rectangle(w, h):
for i in range(2):
t.left(90)
t.fd(h)
t.left(90)
t.fd(w)
rectangle(320, 200)
t.screen.exitonclick()
t.screen.mainloop()
Turtle modulida t.setheading(x) buyrug’i yordamida toshbaqani ma'lum bir yo'nalishda burish mumkin, bu yerda x - toshbaqani boshlang'ich holatiga nisbatan burish burchagi. Agar ushbu parametrga 90 qiymatini kiritilsa, toshbaqa yuqoriga buriladi, 180 – chapga, 270 – pastga, 360 yoki 0 – o'ngga buriladi.
Misol: Kvadrat va doira toshbaqa yordamida chizilishi.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
def sq_cr(side):
for i in range(4):
t.left(90)
t.fd(side)
t.bk(side / 2)
t.circle(side / 2, 360)
t.left(180)
t.circle(side / 2, 360)
sq_cr(250)
t.screen.exitonclick()
t.screen.mainloop()
Модуль turtle в Питоне позволяет рисовать точки. Для этого используется команда t.dot(r, color), где r – радиус точки в пикселях, color – цвет, которым будет рисоваться точка.
Пример. Программа рисует круг с заданным количеством точек на нём. У точек и у круга можно изменять радиус.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
t.up()
t.goto(350, 0)
t.left(90)
t.down()
for i in range(20):
t.circle(350, 18)
t.dot(20, "red")
t.screen.exitonclick()
t.screen.mainloop()
Do'stlaringiz bilan baham: |