Similar presentations:
Turtle. Линейные алгоритмы. Ссылка на методичку. Модуль 4. Урок 1
1.
Модуль 4. Урок 1.Turtle.
Линейные алгоритмы
Ссылка на методичку
2.
Модуль 4. Урок 1. Turtle. Линейные алгоритмыОбсуждение:
Новый заказ
3.
Получен новый заказ!В ProTeam обратилась студия дизайна «Ваш уют».
Руководство студии планирует выпустить новую коллекцию обоев и
плитки с оригинальными рисунками.
Обсуждение
рабочих задач
Чтобы поставить производство на поток, нужен набор программ с
автоматической отрисовкой узоров.
Звучит интересно! Поможем заказчику?
Алёна,
менеджер проектов
4.
Рассмотрим одну из задачЕсть ли в Python инструменты для реализации такого заказа? Если
да, то какие и где узнать о них больше?
Обсуждение
рабочих задач
Задача. Поступил заказ от родителей мальчика, которому нравится всё, что связано с
морем и кораблями. Для своей комнаты он хочет узор кораблика, плывущего по морю.
Напишите программу, отрисовывающую кораблик как на картинке.
5.
Вспомним компоненты стандартнойбиблиотеки Python
Есть готовый модуль для работы с графикой — turtle!
Встроенные
возможности
(исполняются
сразу)
Модуль random
(работа со
случайными
величинами)
Модуль turtle
(графические
примитивы)
Модуль os
(взаимодействие
с системой ПК)
Модуль time
(получение и
подсчёт времени)
...
Обсуждение
рабочих задач
Стандартная библиотека Python
6.
Рассмотрим задачу внимательнееЛюбой рисунок — это комбинация геометрических фигур: отрезков, углов,
окружностей и др.
Для работы с графикой нужно уметь:
❏ Задавать параметры фигур
(например, размер окружности
определяется её радиусом).
❏ Располагать фигуры относительно
друг друга в рабочем пространстве.
Обсуждение
рабочих задач
❏ Знать команды отрисовки
простейших геометрических фигур
(модуль turtle).
7.
Работа с графикой трудна и интересна!Раньше вы обращали внимание, что работа разработчика тесно
связана с математикой. Сегодня мы ещё раз убедимся в этом.
Изучение команд
модуля turlte
Изучение разделов
математики, нужных
разработчикам
Умение
программировать
простые фигуры
Умение
составить из
фигур картинку
Обсуждение
рабочих задач
Автоматическая
отрисовка
изображений
8.
Цель рабочего дня —автоматизировать отрисовку узоров для студии
дизайна.
Заказчик производит эксклюзивные материалы под личные
запросы клиентов.
● узнаете, как устроено изображение в памяти
компьютера и как оно рисуется на экране;
● узнаете и примените команды модуля turtle для
отрисовки геометрических фигур;
● узнаете и примените инструменты математики для
работы с изображениями.
Обсуждение
рабочих задач
Сегодня вы:
9.
Модуль 4. Урок 1. Turtle. Линейные алгоритмы«Мозговой штурм»:
Модуль turtle
10.
Работа с графикойПеред тем, как разбирать команды для работы с графикой,
обсудим, как устроены изображения в памяти компьютера.
Но как зашифровать нулями и единицами
изображение?
«Мозговой
штурм»
Мы уже обсуждали, что все данные в памяти компьютера
хранятся в виде единиц и нулей — «есть сигнал» и «нет
сигнала».
11.
Пиксель —это минимальная (неделимая) часть графического
изображения
Растровое изображение —
совокупность точек (пикселей),
используемых для отображения
картинки на экране компьютера.
Модуль turtle работает с
растровой графикой
«Мозговой
штурм»
Растр — это набор пикселей.
12.
Работа с растровой графикойСовременные мониторы —
цветные. Цвет одного пикселя
кодируется набором нулей и
единиц.
«Мозговой
штурм»
Если бы мониторы были чёрнобелыми, то информация о пикселе
хранилась бы как ноль («нет цвета») или
один («есть цвет»).
13.
Работа с растровой графикойК счастью, нам не нужно помнить последовательности из нулей и единиц
для задания цвета геометрической фигуры.
Интерпретатор узнаёт многие цвета по названиям:
Название
Цвет
Название
красный
"red"
розовый
"pink"
зелёный
"green"
небесно-голубой
"light blue"
синий
"blue"
оранжевый
"orange"
жёлтый
"yellow"
ярко-зелёный
"lime"
чёрный
"black"
фиолетовый
"violet"
«Мозговой
штурм»
Цвет
14.
Отрисовка растрового изображенияНа платформе
черепашка по
умолчанию
обозначается
стрелкой.
«Мозговой
штурм»
Графические объекты модуля turtle отрисовываются в отдельной части
окна специальным исполнителем команд — черепашкой (англ. turtle —
«черепаха»).
15.
Отрисовка растрового изображенияГрафические объекты модуля turtle отрисовываются в отдельной части
окна специальным исполнителем команд — черепашкой (англ. turtle —
«черепаха»).
«Мозговой
штурм»
Начальное положение
исполнителя при запуске
программы:
16.
Отрисовка растрового изображенияПодключение команд модуля turtle:
from turtle import *
Базовые команды:
Значение
forward(<количество пикселей>)
Переместить черепашку вперёд на
указанное число пикселей
left(<количество градусов>)
Повернуть черепашку влево на указанный
угол в градусах
right(<количество градусов>)
Повернуть черепашку вправо на указанный
угол в градусах
color(<название цвета>)
Установить исполнителю новый цвет с
указанным названием
exitonclick()
Оставить изображение на экране после
исполнения программы
«Мозговой
штурм»
Команда
17.
Рассмотрим задачу«Мозговой
штурм»
Задача. Заказчик предпочитает минимализм и хочет купить плитку с рисунком
квадрата. Напишите программу, отрисовывающую чёрный квадрат без заливки
со стороной 150 пикселей.
Как подключить модуль turtle? Какие команды нужно использовать?
18.
Рассмотрим задачуЗадача. Заказчик предпочитает минимализм и хочет купить плитку с рисунком
квадрата. Напишите программу, отрисовывающую чёрный квадрат без заливки
со стороной 150.
а
Возможное решение:
а
а
а
«Мозговой
штурм»
90°
19.
Рассмотрим задачуЗадача. Заказчик предпочитает минимализм и хочет купить плитку с рисунком
квадрата. Напишите программу, отрисовывающую чёрный квадрат без заливки
со стороной 150 пикселей.
from turtle import *
forward(150)
left(90)
left(90)
forward(150)
left(90)
forward(150)
exitonclick()
«Мозговой
штурм»
forward(150)
20.
Перед тем, как продолжить:1. Как изменить программу, чтобы черепашка отрисовывала не
чёрный, а красный квадрат?
«Мозговой
штурм»
2. Клиент передумал и решил украсить плитку более мелкими
квадратами со стороной 90. Сколько строк программы нужно
изменить? Как?
21.
Отрисовка растрового изображенияПодключение команд модуля turtle:
from turtle import *
Ещё один набор команд:
Значение
pensize(<количество пикселей>)
Изменить размер пера, которым рисует
исполнитель (изначально — 1)
circle(<радиус круга>)
Нарисовать круг с заданным радиусом в
пикселях
«Мозговой
штурм»
Команда
22.
Рассмотрим задачу«Мозговой
штурм»
Задача. Заказчик хочет плитку с треугольниками. Он ещё не определился с
цветом, поэтому нужно запрограммировать оба: красный и голубой. Длина
стороны треугольника — 110 пикселей.
Как нарисовать треугольник? Какие команды нужно использовать?
23.
Рассмотрим задачуЗадача. Заказчик хочет плитку с треугольниками. Он ещё не определился с
цветом, поэтому нужно запрограммировать оба: красный и голубой. Длина
стороны треугольника — 110 пикселей.
Возможное решение:
60°
60°
«Мозговой
штурм»
60°
24.
Возможное решение:from turtle import *
color('red')
forward(110)
left(60)
forward(110)
left(60)
forward(110)
left(60)
«Мозговой
штурм»
color('blue')
forward(110)
left(60)
forward(110)
left(60)
forward(110)
exitonclick()
Работает неправильно!
Кажется, ошиблись с углом...
25.
Правильное решениеЗадача. Заказчик хочет плитку с треугольниками. Он ещё не определился с
цветом, поэтому нужно запрограммировать оба: красный и голубой. Длина
стороны треугольника — 110 пикселей.
Черепашка поворачивается не на 60, а
на 120 градусов («снаружи»
треугольника, а не «внутри»)!
60°
60°
120°
«Мозговой
штурм»
60°
26.
Правильное решение:from turtle import *
color('red')
forward(110)
left(120)
forward(110)
forward(110)
left(120)
color('blue')
forward(110)
left(120)
forward(110)
left(120)
forward(110)
exitonclick()
После того, как
исполнитель нарисует
первый треугольник,
его нужно «довернуть»
до начального
положения.
«Мозговой
штурм»
left(120)
27.
Перед тем, как продолжить:1. Как изменить программу, чтобы черепашка отрисовывала
больший треугольник со стороной 150?
«Мозговой
штурм»
2. Клиент хочет добавить к сравнению ещё один цвет — зелёный.
Как изменить программу, чтобы она отрисовывала
треугольники трёх цветов?
28.
Модуль 4. Урок 1. Turtle. Линейные алгоритмыПлатформа:
Ваш уют:
оформление комнат
29.
Выполните задания на платформе«Ваш уют: оформление комнат»
Работаем на
платформе
learn.algoritmika.org
30.
Перерыв31.
Модуль 4. Урок 1. Turtle. Линейные алгоритмы«Мозговой штурм»:
Математика для
разработчика
32.
Отрисовка растрового изображенияЕщё некоторые важные команды:
begin_fill()
end_fill()
penup()
pendown()
goto(<координата Х>, <координата Y>)
Значение
Начать заливку фигуры (следом идёт
команда рисования фигуры)
Завершить заливку фигуры
Поднять перо исполнителя (полезно при
рисовании нескольких фигур)
Опустить перо исполнителя
Переместить исполнителя в точку с
указанными координатами
«Мозговой
штурм»
Команда
33.
Рассмотрим задачуЗадача. Запрограммировать узор для обоев из трёх кругов. Параметры кругов:
Слева наверху: жёлтый маленький круг радиусом 30 пикселей.
Внизу посередине: зелёный круг среднего размера радиусом 40 пикселей.
Справа наверху: красный большой круг радиусом 50 пикселей.
Как решить эту задачу?
Какие расположить круги в разных местах?
«Мозговой
штурм»
❏
❏
❏
34.
Координатная плоскостьПоложение черепашки на плоскости определяется двумя числами —
координатами.
При запуске программы черепашка
появляется в начальной точке (0, 0).
(200, 200)
Начало
(0, 0)
(-200, - 200)
(200,- 200)
«Мозговой
штурм»
(-200, 200)
35.
Координатная плоскостьПоложение черепашки на плоскости определяется двумя числами —
координатами.
При запуске программы черепашка
появляется в начальной точке (0, 0).
➢ Чтобы переместить исполнителя,
нужно задать ему новые
координаты.
(200, 200)
Начало
(0, 0)
goto(<координата Х>, <координата Y>)
(-200, - 200)
(200,- 200)
«Мозговой
штурм»
(-200, 200)
36.
Вернёмся к задачеЗадача. Запрограммировать узор для обоев из трёх кругов. Параметры кругов:
Слева наверху: жёлтый маленький круг радиусом 30 пикселей.
Внизу посередине: зелёный круг среднего размера радиусом 40 пикселей.
Справа наверху: красный большой круг радиусом 50 пикселей.
«Мозговой
штурм»
❏
❏
❏
Попробуем нарисовать первый круг.
Как это сделать?
37.
Вернёмся к задачеЗадача. Запрограммировать узор для обоев из трёх кругов. Параметры кругов:
Слева наверху: жёлтый маленький круг радиусом 30 пикселей.
Внизу посередине: зелёный круг среднего размера радиусом 40 пикселей.
Справа наверху: красный большой круг радиусом 50 пикселей.
from turtle import *
penup()
goto(-150, 130)
pendown()
color('yellow')
begin_fill()
circle(30)
end_fill()
exitonclick()
Чтобы при
перемещении
черепашки не
оставалось следов,
нужно поднимать и
опускать перо.
«Мозговой
штурм»
❏
❏
❏
38.
Вернёмся к задачеЗадача. Запрограммировать узор для обоев из трёх кругов. Параметры кругов:
❏
❏
❏
Слева наверху: жёлтый маленький круг радиусом 30 пикселей.
Внизу посередине: зелёный круг среднего размера радиусом 40 пикселей.
Справа наверху: красный большой круг радиусом 50 пикселей.
from turtle import *
penup()
goto(-150, 130)
color('yellow')
begin_fill()
circle(30)
end_fill()
exitonclick()
Чтобы сделать заливку
фигуры цветом, нужно
поместить отрисовку
фигуры между begin_fill() и
end_fill().
«Мозговой
штурм»
pendown()
39.
Вернёмся к задачеЗадача. Запрограммировать узор для обоев из трёх кругов. Параметры кругов:
❏
❏
❏
Слева наверху: жёлтый маленький круг радиусом 30 пикселей.
Внизу посередине: зелёный круг среднего размера радиусом 40 пикселей.
Справа наверху: красный большой круг радиусом 50 пикселей.
from turtle import *
penup()
goto(-150, 130)
color('yellow')
begin_fill()
circle(30)
end_fill()
exitonclick()
Как добавить второй и третий круг?
«Мозговой
штурм»
pendown()
40.
#желтый круг#красный круг
penup()
penup()
goto(-150, 130)
goto(130, 110)
pendown()
pendown()
color('yellow')
color('red')
begin_fill()
begin_fill()
circle(30)
circle(50)
end_fill()
end_fill()
#зелёный круг
exitonclick()
penup()
goto(0, -100)
pendown()
color('green')
begin_fill()
circle(40)
end_fill()
«Мозговой
штурм»
from turtle import *
41.
Перед тем, как продолжить:1. Даны координаты точек перемещения черепашки:
(100, 120), (0, -100), (-150, 0), (100, 120).
Какая фигура отобразится на координатной плоскости после
перемещения (за это время перо не поднималось)?
2. Можно ли оптимизировать прошлую
программу с помощью функций? Как?
«Мозговой
штурм»
1. Как изменить код предыдущей программы, чтобы вместо узора
из кругов появился аналогичный узор из квадратов?
42.
Модуль 4. Урок 1. Turtle. Линейные алгоритмыПлатформа:
Ваш уют:
оформление комнат 2
43.
Выполните задания на платформе«Ваш уют: оформление комнат 2»
Работаем на
платформе
learn.algoritmika.org
44.
Модуль 4. Урок 1. Turtle. Линейные алгоритмыЗавершение
рабочего дня
45.
Для завершения работыпройдите техническое интервью
1. Что такое пиксель? С каким видом графики работает модуль
turtle? Что такое черепашка?
Подведение итогов
рабочего дня
2. Какие геометрические фигуры вы умеете рисовать с
помощью черепашки?
3. Как задать положение черепашки на координатной
плоскости?
Костя,
Алёна,
старший разработчик
менеджер проектов
46.
Оценка эффективности проделаннойработы
Поделитесь с коллегами:
2. Что получилось не так, как хотелось?
3. Что нужно сделать, чтобы в следующий раз избежать
неудачи?
Подведение итогов
рабочего дня
1. Что у вас получилось лучше всего?
47.
«Ваш уют:доп задания»
Подведение итогов
рабочего дня
Дополнительные задания для
повышения эффективности
programming