Виктор Рабинович - Python для детей. Анимация с черепашьей графикой
- Название:Python для детей. Анимация с черепашьей графикой
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:9785005129215
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Виктор Рабинович - Python для детей. Анимация с черепашьей графикой краткое содержание
Python для детей. Анимация с черепашьей графикой - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:

Таблица 4
Вращающиеся окружности
Рассмотрим пример, демонстрирующий непрерывное вращение трех окружностей, составленных в свою очередь из кружков небольшого радиуса. Все круги разного цвета образованы с помощью базового примитива: circle. Программа, реализующая этот алгоритм, показана ниже, несколько статических кадров – в правой части таблицы 5.

Таблица 5
Поясним ключевые (основные) коды приведенной программы. Строка #1 определяет три <���пустых> списка (массива) обьектов: базисных черепашьих примитивов, каждый из которых будет заполнен кругами разного цвета. Строки, расположенные между номерами 2 и 3 определяют функцию для рисования кругов, строки между номерами 3 и 4 формируют три массива q [m], p [m], r [m], где m=0,1,2,3…17. Наконец, строки между номерами 4 и 5 задают вращение массивов: первый и третий- почасовой стрелке и второй средний против часовой стрелки. Видоизменив последнюю часть программы, можно остановить вращение окружностей, кликнув стрелкой мышки на любую часть экрана. Соответствующая измененная часть кодов показана ниже:

Таблица 6
В левой и правой части таблицы показаны части кода, которые следует поменять на строки между номерами 4 и 5 основного кода (таблица с изображениями в правой части). Скрипты левой и правой части отличаются логикой приостановки кода. В левой части остановка осуществляется по команде , в правой – использются логические операторы True и False. Обе части для остановки используют функцию onclick (), которая позволяет управлять останавливать вращение на экране по щелчку мыши.
Простейшая пиксель анимация
Пиксельная графика – это форма цифровой графики, в которой, используя пиксели, можно создать изображение различных обьектов с помощью программного обеспечения. Пиксель это маленький квадратик на экране компьютера, который можно закрашивать тем или иным цветом. Когда маленькие разноцветные квадратики (пиксели) собраны вместе, они образуют изображение для человеческого глаза. Таким образом можно сформировать разнообразные изображения, например, изображения животных или человека. Собрав из пикселей изображение и используя компьютерную программу, можно создать анимацию, т. е. заставить изображение передвигаться, изменять выражение лица, увеличивать или уменьшать изображение в размерах и т. д. В этом разделе мы познакомимся, как с помощью простых команд Питона и черепашьей графики создать анимацию пиксельных изображений. Наш первый пример – создаем простейшее изображение. Соответствующая программа представлена в таблице 7. Поясним коротко алгоритм работы программы. На первом шаге создаем пиксель на экране монитора в виде квадрата, который имеется в черепашьей библиотеке (коды между строками 1 и 2). Размер квадрата задан переменной delta. Изменяя величину delta, можно увеличивать либо уменьшать размеры пикселя и соответственно всего изображения. Расстановка пикселей на экране задается строками программы, расположенными между линиями 3 и 4. Каждая из этих строк задает одномерный список (массив) нулей и единиц. Одномерные списки row0, row1, row2,…row7, являются элементами массива (списка) pixels= [row0,row1,row2,…row7] (списки в списке), на английском (list). Таким образом список pixels можно можно представить в виде списка строк, каждый элемент которого является в свою очередь списком, например, чисел. Элементами каждого списка являются нули либо единицы. Для обработки и вывода такого списка, как правило, используют два вложенных цикла, как показано между линиями 6 и 7. Первый цикл перебирает номер строки, второй цикл бежит по элементам внутри строки. Например, вывести двумерный числовой список на экран построчно, разделяя числа пробелами внутри одной строки, можно так: Строки между линиями 6 и 7 определяют функцию с параметрами x и y, где x и y координаты установки первого пикселя, координаты, с которых начинается прорисовка пиксельного изображения. Обратим внимание на строку, обозначенную *. Эта строка служит для раскрашивания пикселя с координатой в ряду по номеру j и координатой в столбце по номеру i.
В нашей мозаике цветов всего два цвета: зеленый и черный, как задано кодом строки 5: цифра 0 соответствует зеленому цвету, цифра 1-черному цвету. Если в строке, обозначенной * убрать слово grey, исчезнет окоймляющий пиксель ободок серого цвета.

Таблица 7
К показанному выше коду добавим следующие строки:

Таблица 8
В результате получим изображение, которое появляется и исчезает в различных точках экрана. Место расположения изображения задается датчиком случайных чисел, определяемых строкой, обозначенной двумя звездочками ** в таблице 8. Для того, чтобы воспользоваться датчиком случайных чисел, мы импортировали библиотеку random (первая строка таблицы 7).
Анимация собаки в стиле пиксель-арт
Приведем еще один промер анимационного изображения построенного с помощью базового примитива черепашьей графики. Используем примитив квадрат для построения собаки в стиле пиксель арт. Соответствующий код показан ниже в левой части таблицы 9. С правой стороны показаны несколько статических кадров полученного изображения. Поясним коротко алгоритм работы программы. На первом шаге создаем, пиксель на экране монитора в виде квадрата, который имеется в черепашьей библиотеке (строка #1). В нашем случае изображением, которое мы хотим построить, является собака, состоящая из множества (мозаики) собранных в определенном порядке пикселей. Расстановка пикселей задается строками программы, расположенными между линиями #2 и #3. Эти строки описывают одномерные списки pix1, pix2, pix3,…pix12, и каждый из этих списков является элементом двумерного списка pixels= [pix1,pix2,pix3,…pix12] (списки в списке), на английском (list). Цифра 0 в одномерных списках означает отсуттствие пихеля в соответствующем месте экрана, цифра 1- присутствие пикселя. Размер изображения определяется количеством пикселей, размером пикселя delta и шагом между пикселями, который всегда равен 20*delta. Программа между линиями 3 и 5 повторяется бесконечное число раз для 6-ти разных размеров пиксельной ячейки (строки delta=5* (q+1), t.shapesize (0.25* (q+1)). При каждом заходе в цикл по q изменяется цвет собаки, и таким образом создается анимационный эффект.
Читать дальшеИнтервал:
Закладка: