Категории
Самые читаемые
onlinekniga.com » Детская литература » Прочая детская литература » Python для детей. Анимация с черепашьей графикой - Виктор Рабинович

Python для детей. Анимация с черепашьей графикой - Виктор Рабинович

Читать онлайн Python для детей. Анимация с черепашьей графикой - Виктор Рабинович

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 2 3 4 5 6 7 8
Перейти на страницу:
class="p1">Поясним работу представленной программы. Первая строка вызывает библиотеки языка Python turtle и time, т. е. Теперь мы можем пользоваться любой командой этих библиотек. Вторая строка определяет обьект Screen (обозначили его с помощью переменной wn), далее установили размер экрана (по горизонтали 1000 пихелей, по вертикали 700 пихелей) , ввели изображение фона-улицы, а затем добавили спрайт-изображение памкина в окно экрана: файл man.gif. Затем определили обьект с именем man: (man=turtle.Turtle('man.gif')). Теперь можем применять к введенному обьекту man все команды библиотеки графической библиотеки turtle. Запустив программу, вы увидите как наш обьект-изображение скользит по экрану.

Несколько существенных замечаний, касающихся указанной выше программы:

Файлы изображений должны располагаться в той же директории (folder), что и основной script(код) программы.

Сами изображения должны быть расположены на прозрачном фоне, иначе фон изображения наложится на основной фон экрана и исказит его.

Для того, чтобы обеспечить все приведенные требования к правильной настройке изображения, воспользуемся следующими рецомендациями: находим интересующее нас изображение в интернете, копируем его с помощью команды Ctrl+c, открываем один из редакторов, например, редактор Paint.net (предварительно бесплатно скачав-установив его на свой компьютер) и, используя команду Ctrl+v, получаем выбранное нами изображение на экране редактора. Для того, чтобы изменить размеры изображения нужно использовать опцию Image->Resize для того, чтобы сделать прозрачный фон. Затем следует запомнить полученное изображение в виде файла с расширением gif и поместить его в директорию, где расположен основной файл с кодами языка. Обратите внимание на то чтобы имя файла изображения в директории совпадало с именем файла изображения в коде исполнительного файла. После запуска программы в Python редакторе получаем анимацию-движение, несколько кадров которой показано ниже.

На показанных кадрах видно, что памкин-человечек скользит вдоль улицы, но не идет. Это понятно поскольку мы ввели лишь одно изображение человечка, назовем его памкин. Для того, чтобы получить настоящую анимацию в процессе движения, нам необходимо использовать несколько сменяющих друг друга изображений памкина, каждое из которых отличается от предыдущего положением ног. Если мы научимся менять эти изображения в каждом новом кадре (процессе движения), получится имитация ходьбы.

Анимация ходьбы с несколькими изображениями

В таблице 22 представлен код, который демонстрирует как памкин переходит дорогу перебирая ногами. Код использует 10 спрайтов-изображений памкина с разным положением ног.

Таблица 22

В приведенной программе 10 изображений человечка-памкина введены в программу 10-ю файлами в виде Python-list (image=[…]) и затем добавлены на экран с использованием команды wn.addshape(image[i]), где i пробегает значения от 0 до 9 включительно. Движение памкина осуществляется с помощью цикла (for m in range(60):). Целое число m1 пробегает только 10 значений ( 0,1,2…9), в то время как величина i изменяется от 0 до 60 включительно. При этом памкин проходит весь путь от левой части экрана до конца правой. Файлы с изображениями памкина, изображение улицы а также файл-программу можно скачать по адресу:

https://github.com/victenna/Pumpkin-man

Eсли вы хотите, чтобы после первого прохода по перекрестку памкин возвращался обратно влево и вновь повторял тот же маршрут и так бесконечное количество раз, программа может быть изменена следующим образом, как показано в таблице 23 (Код показан в левой колонке):

Таблица 23

Для того,чтобы реализовать такой алгоритм движения вводим в программу еще один цикл (while True:). Таким образом программа содержит два цикла: внутренний, который обеспечивает движение памкина слева направо и второй внешний бесконечный цикл обеспечивает повторение движениe, которое обеспечивается внутренним циклом.

Дальнейшим шагом является код программы (правая колонка в таблице), которая реализует ходьбу памкина слева направо, затем справа налево и опять слева направо и справа налево. Для того, чтобы реализовать этот код пришлось дополнительно ввести в программу 10 изображений памкина зеркально отраженных по сравнению с изображениями левой таблицы. Эти изображения «работают», когда памкин идет справа налево.

Особенности исполнения кодов черепахи при работе с изображениями в библиотеке

turtle

.

Применим к встроенной в библиотеку изображению черепашки команду left(45). При этом голова черепахи повернется на 45 градусов, и последующая за ней команда fd(100) сдвинет черепаху на расстояние 100 пикселей под углом 45 к горизонту. В том случае, когда мы используем в программе изображение, добавленное командой wn.addshape(image), повернуть изображение вокруг своей оси нельзя. Но последующая за командой left(45) команда fd(100) сдвинет изображение на 100 пихелей в направлении под углом 45 градусов к горизонту также как и в случае со стандартным изображением черепахи. Аналогичное правило действует в отношении поворота вправо. На нижнем рисунке видно: слева голова черепашки повернулась при использовании команды left(45), на правом изображении памкин не повернулся на 45 градусов, однако и черепашка и памкин прошли 200 пикселей в направлении под 45 градусов к горизонтали.

Отметим также, что команда shapesize(…) в случае с избражениями, взятыми, например, из интернета, не работают. Если необходимо увеличить размер изображения или повернуть его на какой-либо угол, необходимо вначале создать необходимое вам изображение с изпользованием, например библиотеки PIL языка Python а затем ввести это изображение в программу.

Видео, демонстрирующее пешехода памкина при использовании кода в правой части показанной выше таблицы, расположено по адресу:

https://youtu.be/K3OLvrmDTHI

Астронавт в открытом космосе

Сценарий этого анимационного проекта следующий: астронавт летит в открытом космосе вблизи космического корабля. Код и пояснения приведены в таблице 24

Таблица 24

В показанном примере изображение окна экрана (звездного неба) а также астронавта и космического корабля вводятся в программу с помощью трех файлов: moonsky.gif, astr.gif и shuttle.gif. Движение корабля и космонавта определяются кодами между линиями 1 и 2, каждое новое вхождение космического корабля в зону окна задается случайным углом наклона (последняя строка кода). Для того,чтобы астронавт не удалялся от корабля, в процессе работы программы определяются координаты корабля X,Y, а затем позиция космонавта определяется строкой кода Astro.setposition(X+15,Y+115). Файлы с необходимыми изображениями а также файл с программой можно скачать по адресу:

https://github.com/victenna/Astronaut-in-free-space

Видео файл с полученной анимацией можно посмотреть по адресу:

https://youtu.be/vbO7jR3zMho

Ракета вращается вокруг Земли

Следующий проект: ракетоплан вращается вокруг Земли. Особенностю создания программы является то, что ракетоплан строим сами, используя метод полигонов, изображение Землю выбераем из интернета. Ниже на рисунке показана

1 2 3 4 5 6 7 8
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Python для детей. Анимация с черепашьей графикой - Виктор Рабинович.
Комментарии