В этом примере рассмотрим как создать анимацию трех автомобилей с водителями вдоль холмистой дороги. При этом используем прием прошлого примера: автомобили с водителями построены с помощью полигонов-многоугольников. Этот метод позволяет использовать почти все команды черепашьей графики, в частности повороты изображения на зданный угол а также сжатие и растяжение обьекта, конечно, в добавление к основным командам графики. Полный код и несколько статических кадров показаны в таблицах 18-1 ,18-2 и 18-3) В представленном коде выделены следующие блоки: функция для построения полигонов определяется строками между линиями 1 и2; функция для построения окружностей(колеса автомобиля и глаза водителя расположена между строками 2 и 3; коды обращения к функции построения кузова автомобиля размещены между линиями 3 и 4; колеса автомобиля представлены кодами строк между линиями 4 и 5; коды, создающие водителя представлены строками между линиями 5 и 6; строки межу линиями 6 и7 определяют обьект автомобиль с водителем; коды между линиями 7 и 8 задают еще два автомобиля с использованием стандартной функции clone() черепашьей графики; строки между линиями 8 и 9 задают бесконечную анимацию- движение автомобиля; блоки между линиями 8 и 10, 10 и 11, а также между 12 и 13 определяют движение автомобилей по холмам. Изображение холмистой поверхности вставлено в окно экрана с использованием функции wn.bgpic('Street7.gif'), где файл 'Street7.gif' , определяющий изображение должен иметьрасширение gif и р должен быть расположен в том-же фолдере где основной исполняющий файл. Изображение окна экрана и код может быть скачан по адресу:
https://github.com/victenna/Cars-are-driven-over-the-Hill
Остановимся подробнее на описании представленных функций. Функция для построения полигонов фактически строит четырехугольники и поэтому определяется четырьмя вершинами: x1,y1; x2,y2; x3,y3; x4,y4. Кроме этого функция имеет в качестве параметров цвет прямоугольника и цвет окаймляющей его линии (в нашем случае цвет окаймляющей линии для всех четырехугольников черный). Функция для построения окружностей имеет следующие параметры: координаты точки (x,y), от которой начинаем рисовать круг, а также радиус круга r, и кроме этого цвет круга и окоймляющей его линии. Все обращения к этим функциям расположены между линиями 3 и 5. Кроме этого программа с помощью этих функций рисует и водителя.
Таблица 18-1
Таблица 18-2(продолжение Таблицы 18-1)
Таблица 18-3(продолжение Таблицы 18-2)
Движение автомобиля по окружности в вертикальной плоскости
Если все блоки, начиная с линии 6 и ниже заменить на те, что представлены ниже в таблице 19, получим иной сценарий движения автомобиля (петля Нестерова или американские горки). В этом примере с помощью черепашьей графики программы Python создаем анимацию: движение автомобиля вдоль вертикальной петли. Сама петля с окружающим пейзажем введена в окно экрана файлом изображения, выбранным из интернета. Файл изображения окна следующий: Street9(4).gif. Этот файл можно скачать по адресу:
https://github.com/victenna/Cars-are-driven-over-the-Hill
Таблица 19
Спиннер
В этом примере также, как и в предыдущем, строим полигоны для создания простого спиннера. Соответствующая программа показана в таблице 20. Строки между цифрами 1 и 2 определяют функцию для создания кругов, формирующих спиннер. В строках между цифрами 2 и 3 обращаемся к функции и задаем положение кругов и их цвета. Полигон (треугольник), являющийся основанием для спиннера, задан координатами в строках между цифрами 3 и 4. Наконец вращение самого спиннера определяется командами цикла, расположенными между цифрами 4 и 5.
Таблица 20
Спрайт анимация на основе библиотеки
Python
-
Turtle