2.1. Основы работы с графикой
В графических редакторах для построения изображений на компьютере используются графические примитивы — простые геометрические фигуры: прямоугольник, окружность, эллипс, отрезок и т. д. Графический редактор — это программа, написанная на каком-либо языке программирования. Для того чтобы написать такую программу, язык программирования должен иметь возможность работы с графикой.
Для работы с графикой языки программирования используют специальные библиотеки (модули), содержащие наборы команд для построения и обработки изображений. Вам уже известна библиотека turtle, которая поддерживает «черепашью» графику (пример 2.1).
Язык программирования Python позволяет работать с большим количеством других библиотек, предназначенных для создания и обработки графики. Наиболее популярными являются следующие:
tkinter – стандартная библиотека Python для создания графического интерфейса пользователя. Поставляется вместе с Python;
matplotlib – библиотека для создания статических, анимированных и интерактивных визуализаций на Python. Она используется для построения графиков и диаграмм;
pygame – набор модулей Python, предназначенных для написания видеоигр. Он содержит функции для работы с графикой, звуком, управлением временем и др;
graphics.py – библиотека, разработанная в поддержку книги Д. Зелле «Программирование на Python: Введение в информатику» для начинающих программистов.
Все библиотеки (кроме стандартных) требуют дополнительной установки, которую можно осуществить через терминал среды разработки Visual Studio Code. Для установки нужно в терминале ввести команду pip install <имя_модуля> (пример 2.2).
Выбор конкретной библиотеки для работы с графикой определяется тем, какую конкретную задачу должен решить пользователь.
2.2. Основные команды Черепахи
Исполнитель Черепаха может строить изображения в графическом окне, в котором определена система координат (пример 2.3). Точка с координатами (0,0) расположена в центре графического окна. Напомним команды «черепашьей» графики.
| Команда |
Действие |
| shape(X) |
Изменить значок черепахи |
| penup() |
Не оставлять след при движении
|
| pendown() |
Оставлять след при движении |
forward(X)
fd(X)
|
Пройти вперёд на X пикселей
|
|
backward(X)
bd(X)
|
Пройти назад на X пикселей |
left(X)
lt(X)
|
Повернуться налево на X градусов
|
|
right(X)
rt(x)
|
Повернуться направо на X градусов |
|
color(x)
|
Изменить цвет линии |
|
fillcolor(x)
|
Изменить цвет заливки фигуры |
|
bgcolor(x)
|
Изменить цвет фона окна |
|
pensize(x)
|
Изменить толщину линии |
|
circle(r)
|
Нарисовать окружность радиуса r |
|
begin_fill()
|
Команда которая прописывается перед фигурой, которую нужно будет залить
|
|
end_fill()
|
Залить фигуру, которая нарисована с помощью команд, расположенных
между begin_fill() и end_fill()
|
|
setpos(x, y)
|
Переместить Черепаху в точку с координатами (x,y)
|
|
setheading(x)
seth()
|
Задать направление движения Черепахи |
|
setup(w,h)
|
Изменить размеры окна Черепахи: w – ширина окна, h – высота окна |
Команду circle(r, 360, n) можно использовать для того, чтобы нарисовать правильный многоугольник. Второй параметр — величина угла сегмента круга. Третий параметр n бозначает количество углов у многоугольника.
Вспомним применение основных команд «черепашьей» графики (пример 2.4).
Пример 2.4. Написать программу, которая строит изображение домика.
Этапы выполнения задания.
I. Исходные данные: результат работы программы не зависит от исходных данных.
II. Результат: готовый рисунок.
III. Алгоритм решения задачи.
Рисунок состоит из: прямоугольников и отрезков. Для рисования прямоугольника создадим функцию rect(x1, y1, x2, y2). Аргументами этой функции будут координаты диагонали, которая определяет прямоугольник. Длина стороны прямоугольника – это модуль разности соответствующих координат. Для вычисления модуля используется стандартная функция abs.
Правильные координаты вершин прямоугольников можно получить, если предварительно сделать рисунок на листе бумаги в клеточку.
IV. Описание переменных. Переменные не используются.
При изучении векторной графики вы познакомились с цветовой моделью RGB, которая позволяет записать любой цвет тремя числами, которые определяют значения красной, зелёной и синей составляющих цвета. Функция colormode(255) переключает режим ввода значений цвета с текстового на числовой, когда значение цвета задаётся тремя составляющими RGB.
Такой способ определения цвета позволяет задавать цвета, значения которых не описаны константами. Значения составляющих цвета можно посмотреть в графическом редакторе Paint (пример 2.5).
Черепаха может выводить в графическое окно тексты и числа. Для этого используется команда write(). Она выводит строку или число в текущей позиции Черепахи.
Если нужно вывести строку, то её символы заключают в кавычки, для вывода числа можно использовать переменные, значения чисел. Если в качестве аргумента записать арифметическое выражение, то будет выведено его значение.
Функция write() может иметь до четырёх аргументов (пример 2.6):
arg — объект (текст, число) для вывода на экран Черепахи;
move — логическое значение, определяющее, будет ли Черепаха перемещаться в конец выведенного текста. По умолчанию установлено значение False.
При перемещении Черепаха оставляет след, если перо опущено (текст выглядит подчёркнутым);
align — определяет выравнивание текста относительно текущей позиции Черепахи. Возможные значения: «left» (текущая позиция Черепахи определяет начало текста, Черепаха находится слева от текста), «center» (текущая позиция Черепахи определяет середину текста), «right» (текущая позиция Черепахи определяет конец текста, Черепаха находится слева от текста). По умолчанию установлено значение «left»;
font — задаёт шрифт, его размер и начертание. Значением является список из трёх элементов: (имя шрифта, размер шрифта, начертание). Имя шрифта можно взять, например, в Word. Размер шрифта задаётся в пунктах. Значения для начертания: «normal» (обычный), «bold» (полужирный), «italic» (курсивный), «underline» (подчёркнутый), «overstrike» (зачёркнутый). Начертания шрифта можно комбинировать. Например: «underline bold».
По умолчанию для шрифта установлены следующие значения: font = («Arial», 8, «normal»). Значения для размера шрифта и начертания можно не указывать. Запись font = («Courier New») означает, что изменится только шрифт. Если нужно изменить только размер или начертание, то вместо имени шрифта оставляют пустые кавычки. Запись font = («», 12, «bold») означает, что изменяется только размер и начертание, но не сам шрифт.
|
|
|