Черепашья графика, turtle – принцип организации библиотеки графического вывода, построенный на метафоре Черепахи, воображаемого роботоподобного устройства, которое перемещается по экрану или бумаге и поворачивается в заданных направлениях, при этом оставляя (или, по выбору, не оставляя) за собой нарисованный след заданного цвета и ширины.
Проще: черепашка ползает по экрану и рисует. Мы управляем черепашкой на плоскости при помощи программы.
- Начало работы. Движения
- Геометрические фигуры
- Самостоятельно:
- Решения
- Изменяем параметры во время движения
- Больше программирования!
- Координаты на плоскости
- Круг и точка
- Самостоятельно:
- Решения
- Делаем фигуры равновеликими
- Другие полезные функции:
- Пример двух рисунков – экземпляров класса Turtle() – на одном полотне
- Итог: функции и классы на примере turtle
- Графический интерфейс средствами библиотеки turtle.
- Исполнитель черепашка Первые шаги
- Исполнитель черепаха фигура треугольник
- Как правильно применять процедуры?
- Практические задания
- 🎥 Видео
Видео:Задание 6 Исполнитель Черепаха ОГЭ информатикаСкачать
Начало работы. Движения
В первой строке необходимо добавить:
Мы командуем черепашкой простыми словами на английском языке. left, right – поворот налево и направо, forward и backward – движение вперед и назад. В программе каждое действие – вызов функции из модуля turtle. Простая программа:
- Поворот направо на 90 градусов
- Движение вперед на 100 шагов (пикселей)
- Поворот налево на 90 градусов
- Движение назад на 100 шагов
Не похоже на черепашку, это ползающая стрелка! Исправим это:
Отлично! Теперь это черепашка, пусть и монохромная. Дополнительно, функция exitonclick() позволяет закрыть окно и завершить выполнение программы кликом мышкой по окну.
А еще можно использовать сокращенные названия функций: fd(100) вместо forward(100), rt вместо right, lt вместо left, bk вместо backward.
Видео:ОГЭ Информатика задание 6 Исполнитель черепашка Геометрическая фигураСкачать
Геометрические фигуры
Рисуем простые геометрические фигуры:
- Прямая: просто движение вперед
- Квадрат: вперед, поворот на 90 градусов и так 4 раза. Повторение команд – значит, можно выполнить их в цикле for!
- Пятиконечная звезда: вперед, поворот на 144 градусов и так 5 раз.
Если мы хотим выполнить инструкции n раз, мы пишем их в цикле
Далее идут инструкции с отступом в 4 пробела. Код с отступами – тело цикла. Когда цикл завершается, отступы больше не ставятся.
Скучно рисовать одинокие фигуры. Поэтому мы приготовились рисовать сразу несколько и теперь создаем отдельный экземпляр класса Turtle для каждой фигуры. Так мы можем менять цвет линии и другие параметры отдельно для каждой фигуры. Потом, когда мы захотим дорисовать или изменить параметры фигуры, у нее будут сохранены старые параметры. Их не надо будет устанавливать заново, как это было бы без отдельных экземпляров класса для каждой фигуры.
Звезда рисуется также:
Самостоятельно:
- Нарисуйте пятиконечную звезду (угол поворота 144 градуса).
- Квадрат и звезду в одной программе, на одном графическом поле, но с разными экземплярами класса Turtle.
- Восьмиконечную звезду (угол поворота 135 градусов).
- Фигуру из анимации в начале страницы.
Видео:Задание 6 | ЕГЭ по информатике | ДЕМО-2023Скачать
Решения
Видео:ПРОГА для 6 ЗАДАНИЯ на PYTHON, которая сама СЧИТАЕТ ТОЧКИ! | ЕГЭ по информатике 2023Скачать
Изменяем параметры во время движения
При отрисовке простых фигур черепашка возвращалась в исходную точку, и программа останавливалась, ожидая, когда будет закрыто окно. Если в цикле продолжить рисовать по прежним инструкциям, фигура будет нарисована заново по уже нарисованным контурам. А если ввести дополнительный угол поворота?
Мы также добавили:
- color(‘red’, ‘green’) определяет цвет линии и цвет заполнения. Черепашка теперь зеленая!
- begin_fill() и end_fill() обозначают начало и конец заполнения
Больше программирования!
Напишем обобщенную программу рисования выпуклых равносторонних многоугольников. num_sides – количество граней, side_length – длина грани, angle – угол поворота.
Что будет, если на каждом шаге увеличивать длину пути? В первый день 10 шагов, во второй – 20, далее 30, 40 и так до 200:
Видео:Вспомогательные алгоритмы Черепаха (Кумир 2.1.0-rc10)Скачать
Координаты на плоскости
Положение на плоскости определяется двумя числами, x и y:
Черепашку в программе можно перемещать функцией goto(x, y). x и y – числа, или переменные. goto(0, 0) переместит черепашку в начало координат.
Вместо звезды-спирали мы получили 5 линий, расходящихся из точки начала координат.
Круг и точка
Не хватает плавных изгибов? На помощь приходят функции dot() и circle():
- изменили заголовок окна функцией title(),
- установили толщину линии – pensize(),
- установили цвет линии – pencolor(),
- Подняли черепашку перед перемещением – penup() и опустили после – pendown().
Самостоятельно:
- Используя код из примеров и функцию goto(), нарисовать галерею из 5 или более многоугольников на одном поле. Использовать экземпляр класса turtle.Turtle().
- Нарисованные многоугольники закрасить разными цветами. Пробуйте стандартные цвета или их шестнадцатеричное представление. Не забудьте кавычки вокруг названия или кода цвета!
Видео:Работа в программе КумирСкачать
Решения
Видео:Задание 6 | ЕГЭ по информатике | ДЕМО-2024Скачать
Делаем фигуры равновеликими
Площадь квадрата со стороной 100 пикселей – 10 000 квадратных пикселей. Вычислим площади всех фигур со стороной 100 от треугольника до 7-угольника. Формула площади правильного многоугольника содержит тангенс, поэтому «поверим на слово» результату, зависимости количество углов (вершин) – площадь:
- 3 – 4330.13
- 4 – 10000
- 5 – 17204.77
- 6 – 25980.76
- 7 – 36339.12
Изобразим ее на графике:
Получается, что площадь 7-угольника в 36339.12 / 4330.13 = 8.4 раза больше, чем площадь треугольника! Это очень заметно на рисунке:
Чтобы фигуры стали равновеликими, надо сделать длину грани вместо константы 100 – переменной, которая зависит от количества углов.
Как: приведем все площади к 10000. Для треугольника площадь увеличится на 10000 / 4330.13 = 2.31 раза. Для 7-угольника – уменьшится в 36339.12 / 10000 = 3.63 раз. Значит, стороны должны измениться в 1.52 и 0.52 раз соответственно, то есть, до 152 и 32.7 пикселей (снова «верим на слово»). Эту зависимость можно нащупать «на глаз», в чем и заключалось задание.
Наша программа без труда масштабируется до большего количества фигур:
Программа, в которой вычисляются точные значения:
Как построить график (если кто захочет):
Видео:Как решить задание №6(черепаха) за минуту на ЕГЭ информатика 2023. Кумир-исполнитель робот,черепашкаСкачать
Другие полезные функции:
- turtle.setup(800, 400) устанавливает размеры окна в 800 на 400 пикселей
- turtle.setworldcoordinates(0, 0, 800, 400) устанавливает начало координат в точку 800, 400
- turtle.tracer(0, 0) отключает анимацию
- setpos(x, y) устанавливает черепашку (курсор) в позицию с координатами (x, y)
- seth(x) устанавливает направление в градусах. 0 – горизонтально направо (на восток), 90 – вверх (на север) и так далее
- hideturtle() скрывает черепашку (или стрелку, курсор)
- speed(x) изменяет скорость рисования. Например, speed(11) – почти моментальная отрисовка простых фигур
- clear() очищает холст от нарисованного
- reset() очищает холст и возвращает курсор в начало координат
Пример двух рисунков – экземпляров класса Turtle() – на одном полотне
- Задали название окна,
- создали экземпляр класса Turtle под именем circ. Все изменения сохраняются для класса circ;
- цвет линии и заполняющий цвет,
- форму и размер курсора,
- установили 10-ю скорость
- продвинулись на 150 пикселей вперед от старта,
- начали заполнять фигуру цветом,
- нарисовали круг
- закончили заполнять цветом,
- Объявили переменную n и присвоили ей значение 10,
- создали новый экземпляр класса Turtle под именем t. У него нет настроек экземпляра класса circ!
- В цикле while: пока переменная n меньше или равна 50, рисовать круги радиусом n;
- после нарисованного круга увеличить переменную n на 10.
- Алгоритм рисования кругов прекратит рисовать круги после 4-го круга.
Итог: функции и классы на примере turtle
- Функция – фрагмент программного кода, к которому можно обратиться по имени. Иногда функции бывают безымянными.
- У функции есть входные и выходные параметры. Функция fd(150) – фрагмент программного кода, который двигает курсор вперед на заданное во входном значении количество пикселей (150). Выходного значения у функции fd() нет.
- Когда функцию надо выполнить, после ее названия пишут круглые скобки. fd – просто название, ничего не происходит. fd(100) – функция выполняется с входным параметром 100. Обычно названия функций пишут с маленькой буквы.
- Класс – программный шаблон для создания объектов, заготовка для чего-то, имеющего собственное состояние. Мы можем нарисовать прямоугольник и назвать его кнопкой, но это еще не кнопка, потому что у нее нет собственных свойств и поведения. Прямоугольник надо научить быть самостоятельной, отличной от других, кнопкой.
- Turtle – класс, его имя пишется с большой буквы. через оператор присваивания = мы создаем экземпляр класса: circ = turtle.Turtle(). Turtle – класс (шаблон, трафарет, заготовка), circ – его экземпляр (рисунок, набор уникальных цветов, штрихов и свойств). На картинке выше видно, что экземпляр класса circ богат установленными свойствами, а экземпляр t обладает свойствами по умолчанию: тонкая черная линия, треугольный курсор.
- Программирование с использованием классов и их экземпляров будем называть объектно-ориентированным программированием, ООП. объектно-ориентированный подход необходим при построении графического интерфейса пользователя, GUI.
Видео:КуМИР. Черепаха. Знакомство со средой и исполнителем. Основные команды. Сетка и масштабСкачать
Графический интерфейс средствами библиотеки turtle.
Нарисуем прямоугольник и сделаем его кнопкой: при нажатии кнопка исчезает и появляется круг:
- Задали название и размеры (500 на 500 пикселей) окна,
- Создали экземпляр класса btn1 и спрятали курсор (черепашку),
- Нарисовали прямоугольник 80 на 30;
- подняли перо и перешли на координаты (11, 7);
- написали Push me шрифтом Arial 12-го размера, нормальное начертание. Попробуйте вместо normal ключевые слова bold (полужирный), italic (наклонный);
Исполнитель черепашка
Первые шаги
Вначале программист дает черепашке простые приказы, например ВПЕРЕД 100 , что означает «передвинуться вперед на 100 шагов», или НАЛЕВО 60 , т. е. «сделать поворот влево на 60 градусов». Эти команды можно использовать для создания программ, рисующих геометрические фигуры, необходимо только запомнить, что каждая команда пишется на отдельной строке. Передвигаясь по экрану, черепашка оставляет за собой след (по умолчанию цвет кисти у черепахи — ярко зеленый).
Вставлять в программу команды удобно, используя кнопки в левой части экрана.
Шаги черепашки очень маленькие — равны расстоянию между двумя соседними точками на экране, поэтому действие команды «ВПЕРЕД 1» можно и не заметить.
Выполняя команды НАЛЕВО или НАПРАВО, черепашка поворачивается на заданный угол (при этом она считает, что угол задан в градусах). При повороте черепашка остается на месте, не смещаясь ни в какую сторону, меняется только ее направление. Не забывайте, что направление поворота (налево или направо) определяется «с точки зрения» черепашки.
Число или числовое выражение, которое указывает черепашке сколько шагов пройти или на какой угол повернуть, называется аргументом команды. Если аргумент не задан, то черепашка считает его равным нулю.
Запускают программу на выполнение с помощью большой красной кнопки с надписью Выполнить или с помощью клавиши F5 на клавиатуре. Выйти из выполняемой программы, можно с помощью серой кнопки с крестиком в верхнем правом углу окна исполнения или с помщью клавиши Escape на клавиатуре.
Попробуем вместе начертить квадрат. Чтобы заставить черепашку двигаться по квадрату, мысленно проделайте за нее весь путь и опишите получившееся.
Если сторона квадрата будет длиной в 100 черепашьих шагов, можно составить такую последовательность команд:
вперед 100
налево 90
вперед 100
налево 90
вперед 100
налево 90
вперед 100
налево 90
В этой последовательности 4 раза повторяется группа команд ВПЕРЕД 100 НАЛЕВО 90. Чтобы не писать одни и те же команды четыре раза подряд, познакомимся с еще одной командой, которую знает черепашка, — командой ПОВТОРИТЬ . Наша программа, рисующая квадрат, будет выглядеть так :
повторить 4 <
вперед 100
налево 90
>
В фигурных скобках в нужной последовательности записываются те команды, которые необходимо сделать черепашке несколько раз.
Фигурные скобки можно ставить и так:
повторить 4
<
вперед 100
налево 90
>
—> повторить 4 <
вперед 100
налево 90>
Для того чтобы увидеть выполнение команд в более медленном режиме, можно воспользоваться командой ПАУЗА , после которой необходимо указать время в миллисекундах. В одной секунде — 1000 миллисекунд. То есть, если мы хотим сделать задержку в полсекунды, следует дать команду пауза 500 .
Теперь подумаем, как нарисовать равносторонний треугольник?
При рисовании равностороннего треугольника черепашка должна нарисовать три одинаковых линии и сделать три одинаковых поворота. При создании программы нам поможет одно простое правило, которое называется «Правило 360 градусов».
Правило 360 градусов
Обратите внимание, что при рисовании квадрата черепашка начинает и заканчивает свой путь в одной и той же точке и смотрит в одну и ту же сторону, т.е. ее начальное и конечное положения совпадают. Рисуя квадрат, она совершает полный оборот, т.е. поворачивается на 360 градусов. Разделив 360 на 4 (равных поворота), мы получим 90 — величину угла поворота. При рисовании треугольника черепашка должна сделать три одинаковых поворота и вернуться в начальное положение. Следовательно, каждый из углов поворота равен 360 : 3 = 120.
повторить 3 <
вперед 100
налево 120
>
Можно легко научить черепашку рисовать правильный пятиугольник. Каждый раз черепашка поворачивается на угол, равный 72 градусам (360:5=72), а повторяет 5 раз. Шестиугольник — 360:6=60, повторяет 6 раз.
А теперь попробуйте нарисовать восьмиугольник и двенадцатиугольник самостоятельно.
Видео:Исполнитель Черепашка в КумирСкачать
Исполнитель черепаха фигура треугольник
Иногда в задании явно есть одинаковые операции, но применить цикл не удается. Рассмотрим такой рисунок из равносторонних треугольников:
С одной стороны, все треугольники одинаковые, с другой — они расположены так, что нельзя использовать один цикл для всех трех фигур.
Теперь представим себе, что у Черепахи уже есть команда треугольник, которая рисует треугольник и возвращает исполнителя в исходное положение, причем Черепаха должна стоять в углу треугольника и смотреть в ту сторону, в которую она пойдет.
Учтем, что в равносторонних треугольниках все внутренние углы по 60 градусов. Тогда решение может быть записано так:
ТриТреугольника
вправо ( 30 );
треугольник ;
вправо ( 120 ); назад ( 20 ); /* идем ко второму */
треугольник ;
вперед ( 20 ); влево ( 60 ); /* идем к третьему */
вперед ( 40 ); влево ( 60 );
назад ( 20 );
треугольник ;
Если ввести такую программу, то мы получим ошибку «Не понимаю, что такое треугольник». Это и понятно, поскольку такой встроенной команду у Черепахи нет и она не знает, что делать. Поэтому ей надо объяснить, что такое треугольник, написав расшифровку этой команды. Так как внутренние углы равностороннего треугольника равны 60 градусов, Черепаха должна поворачиваться на 180-60=120 градусов.
Треугольник
опусти_перо;
повтори ( 3 )
<
вперед ( 40 );
вправо ( 120 );
>
подними_перо;
Отдельно взятая программа ТриТреугольника работать не будет, однако если к ней добавить текст вспомогательного алгоритма треугольник, то исполнитель сможет ее выполнить.
Процедуры (вспомогательные алгоритмы, подпрограммы) – это новые команды, которые мы добавляем к СКИ исполнителя. Чтобы исполнитель знал, что делать по этой команде, после основной программы надо дать расшифровку процедуры через уже известные исполнителю команды.
Как правильно применять процедуры?
Практические задания
Составить программу с использованием процедуры для рисования:
Использован материал из книги «Алгоритмы и исполнители», автор Поляков К.
🎥 Видео
Задание 6 // КЕГЭ по информатике 2023Скачать
Исполнитель. ЧерепашкаСкачать
Кумир. Исполнитель Черепаха. Цикл N разСкачать
Разбор задания № 6 ОГЭ по информатикеСкачать
Знакомство с подпрограммами в среде Кумир. Исполнитель ЧерепахаСкачать
Исполнитель Чертёжник. Среда КуМИРСкачать
Исполнитель РисовательСкачать
Открытая лекция «Исполнитель Черепаха»Скачать
Новое задание №6. Черепаха | Parta 2023 | ИнформатикаСкачать
Задание 6 (черепаха) | ДЕМО ЕГЭ по информатике 2023Скачать