Графический модуль turtle
Модуль turtle позволяет рисовать как простейшие графические примитивы, так и более сложные, например, фрактальные узоры. Его интерфейс подразумевает управление так называемой черепашкой — объектом, который перемещается по экрану, оставляя или не оставляя за собой след с указанными параметрами.
Существует два способа использования модуля turtle:
ПРОСТОЙ МЕТОД (БЕЗ СОЗДАНИЯ ОБЪЕКТОВ)
Для этого нам нужно заимпортировать все методы из модуля turtle командой
from turtle import *
После этого можно управлять черепашкой с помощью этих команд.
Список простейших команд:
метод | пример использования | описание |
forward fd | forward(10) | переместить черепашку вперед на указанное количество пикселей |
backward back bk | back(20) | переместить черепашку назад на указанное количество пикселей |
right rt | right(45) | повернуть черепашку вправо на указанное количество градусов |
left lt | left(90) | повернуть черепашку влево на указанное количество градусов |
penup pu up | penup() | поднять перо: после этого черепашка не будет оставлять след |
pendown down pd | down() | опустить перо |
color | color('yellow') | изменить цвет следа |
width pensize | width(5) | изменить ширину следа |
Полный список команд можно найти по ссылке.
for i in range(3):
fd(100)
left(120)
Если добавить две строки, можно нарисовать синий треугольник толстыми линиями:
color('blue')
width(5)
for i in range(3):
fd(100)
left(120)
for i in range(360):
fd(1)
rt(1)
БОЛЕЕ СЛОЖНЫЙ МЕТОД (С ИСПОЛЬЗОВАНИЕМ ОБЪЕКТОВ И МЕТОДОВ )
Для использования черепашки требуется, во-первых, подключить модуль turtle:
import turtle
После этого можно будет создать экран, на котором будет отображаться черепашка:
screen = turtle.Screen()
После этого можно создать саму черепашку, присвоив ей какое-нибудь имя:
t1 = turtle.Turtle()
Таким образом можно создать несколько черепашек на одном экране.
Получившимся объектом можно управлять, вызывая его методы. Список основных методов:
метод | пример использования | описание |
forward fd | t1.forward(10) | переместить черепашку вперед на указанное количество пикселей |
backward back bk | t1.back(20) | переместить черепашку назад на указанное количество пикселей |
right rt | t1.right(45) | повернуть черепашку вправо на указанное количество градусов |
left lt | t1.left(90) | повернуть черепашку влево на указанное количество градусов |
penup pu up | t1.penup() | поднять перо: после этого черепашка не будет оставлять след |
pendown down pd | t1.down() | опустить перо |
color | t1.color('yellow') | изменить цвет следа |
width pensize | t1.width(5) | изменить ширину следа |
Полный список методов можно найти по ссылке.
for i in range(360):
t1.fd(1)
t1.rt(1)
Квадрат
for i in range(4):
t1.fd(100)
t1.left(90)
Если добавить две строки, можно нарисовать синий квадрат толстыми линиями:
t1.color('blue')
t1.width(5)
for i in range(4):
t1.fd(100)
t1.left(90)
Задача 1. Что какого цвета?
С помощью черепашки (turtle) нарисовали такую картинку:
Установите соответствие между названиями цветов и фигурами, для которых их использовали.
Начало формы
дом
окно
крыша
thistle
peru
maroon
Решение задачи
Дом — цвет thistle, окно — peru, крыша — maroon.
Нарисовать подобную картинку можно, например, с помощью такого кода:
from turtle import *
pendown()
color('thistle')
begin_fill()
for i in range(4):
forward(100)
left(90)
end_fill()
penup()
goto(25,25)
color('peru')
begin_fill()
for i in range(4):
forward(50)
left(90)
end_fill()
penup()
goto(0,100)
color('maroon')
begin_fill()
left(45)
goto(50,150)
goto(100,100)
goto(0,100)
end_fill()
Задача 2. Угадай форму
С помощью инструкции turtle.shape() можно задавать вид черепашки. Для этого в круглых скобках пишут текстовую строку, например, turtle.shape("classic"). По умолчанию доступны шесть видов черепашки: “arrow”, “turtle”, “circle”, “triangle”, “classic” и …. В ответе укажите (без кавычек), какой вид черепашки мы пропустили.
Подсказка 1 из 1
Посмотрите ссылку в теоретическом материале к этому занятию или воспользуйтесь поиском в интернете.
Правильный ответ: square
Задача 3. Модуль turtle -- движение вперед
Какие из перечисленных методов двигают черепашку вперед?
Начало формы
forward
color
rt
width
left
fd
Подсказка 1 из 2
Попробуйте перевести названия методов с английского на русский.
Подсказка 2 из 2
Внимательно изучите теоретический материал по теме "Графический модуль turtle"
Решение задачи
Методы forward и его сокращение fd передвигают черепашку вперед на указанное количество пикселей.
Задача 4. Модуль turtle -- сопоставьте методы
Сопоставьте название метода с его описанием
Начало формы
circle(radius)
shape(name)
stamp()
Конецформы
Подсказка 1 из 2
Переведите название методов с английского
Подсказка 2 из 2
Изучите описание методов по ссылке
Решение задачи
circle(radius) — Рисует окружность заданного радиуса
shape(name) — Изменяет отображаемую фоорму черепашки
stamp() — Оставляет след в виде текущей формы черепашки на том месте, где стоит черепашка
Задача 5. Угадай фигуру
Что нарисует такая программа:
from turtle import *
for i in range(6):
forward(100)
left(60)
Подсказка 1 из 1
Запустите программу и посмотрите, что получится.
Прямоугольник
Какие числа нужно записать вместо ? и ??, чтобы программа нарисовала прямоугольник из трех строк и двух столбцов?
from turtle import *
def square(x = 0, y = 0, a = 100):
penup()
goto(x, y)
setheading(0)
pendown()
for i in range(4):
forward(a)
left(90)
for i in range(?):
for j in range(??):
square(x = 5*i, y = 5*j, a = 5)
Подсказка 1 из 1
Поэкспериментируйте с программой, подставляя вместо ? и ?? различные числа.
Решение задачи
В строке
square(x = 5*i, y = 5*j, a = 5)
значение переменной x меняется столько раз, сколько меняется i, то есть, если мы хотим прямоугольник из двух столбцов, то i должен меняться дважды. Аналогично, j должен меняться трижды. Поэтому вместо ? нужно записать 2, а вместо ?? нужно записать 3.
Что получится?
Установите соответствие между программами и тем, что они нарисуют.
Программа 1.
from turtle import *
def square(x = 0, y = 0, a = 100):
penup()
goto(x, y)
setheading(0)
pendown()
for i in range(4):
forward(a)
left(90)
for t in range(5):
square(x = 30 * t, a = 30)
Программа 2.
from turtle import *
def square(x = 0, y = 0, a = 100):
penup()
goto(x, y)
setheading(0)
pendown()
for i in range(4):
forward(a)
left(90)
for t in range(5):
square(y = 30 * t, a = 30)
Программа 3.
from turtle import *
def square(x = 0, y = 0, a = 100):
penup()
goto(x, y)
setheading(0)
pendown()
for i in range(4):
forward(a)
left(90)
for t in range(5):
square(x = 30 * t, y = 30 * t, a = 30)
Подсказка 1 из 1
Запустите код и посмотрите, что он нарисует.
Решение задачи
Если в цикле меняется значение x-координаты, то получится горизонтальная полоска, если меняется значение y-координаты, то вертикальная, а если меняются обе координаты, то диагональная.
Модуль turtle -- результат
Что будет изображено на экране после выполнения такого фрагмента кода:
from turtle import *
color("red")
for i in range(4):
penup()
fd(100)
pendown()
right(90)
Решение задачи
Поскольку на каждой итерации цикла перед продвижением вперед мы поднимаем перо черепахи, она не оставит никаких следов на экране. Таким образом после выполнения этой программы на экране ничего не будет изображено
Угадай цвет
Команда turtle.color() принимает в качестве аргумента текстовую строку с названием цвета, например, color('red'), или текстовую строку с цветом в системе RGB, например, color('#00FF00').
Установите соответствие между цветами и их названием.
red
green
blue
black
white
yellow
aqua
fuchsia
#FF0000
#00FF00
#0000FF
#000000
#FFFFFF
#FFFF00
#00FFFF
#FF00FF
Подсказка 1 из 1
Воспользуйтесь поиском в интернете.
tkinter и ОС
Графическая библиотека tkinter позволяет создавать программы с оконным интерфейсом в операционных системах:
Начало формы
Mac OS X
Windows
Linux