Рисование в Python

02.01.2023 0 Автор : Марина Николаевна
Рисование в Python

Рисование в Python. Программировать можно не только решение задач, но и рисование линий, прямоугольников, окружностей и других координат. Также доступно при программировании изменение координат фигуры.

Рисунки линий

Линии на холсте состоят из пикселей. Легче всего нарисовать горизонтальную или вертикальную линию. Например, линию (отрезок) из точки (10,20) в точку (15,20) можно построить из шести пикселей:

point (10, 20)

point (11, 20)

point (12, 20)

point (13, 20)

point (14, 20)

point (15, 20)

Нарисуем наклонную линию. Она, как и весь холст, тоже состоит из пикселей. Например, линия из точки (10,20) в точку (15,25) — диагональная, так что при увеличении х-координаты на 1 также увеличивается и y- координата:

point (10, 20)

point (11, 21)

point (12, 22)

point (13, 23)

point (14, 24)

point (15, 25)

А как нарисовать линию из точки (10;20), скажем, в точку (15,28)? Вычислить координаты нужных пикселей во многих случаях непросто. Для этой цели американский ученый Дж.Э.Брезенхэм в 1962 году придумал алгоритм, который используется в функции line  из модуля graph. Нам достаточно просто вызвать эту функцию:

line (10, 20, 15, 28)

Функции передаются четыре аргумента: сначала координаты первого конца отрезка, затем — координаты второго конца. Линия будет иметь тот цвет, который был установлен до этого командой penColor.

Толщину линии можно при желании изменить командой penSize (от английского size — размер):  penSize (5)

После выполнения этой команды все линии будут иметь толщину 5 пикселей, пока не выполнится новая команда penSize. 

Линия — это один из графических примитивов. Так называются элементы рисунка, которые добавляются с помощью одной команды. В модуле graph есть еще несколько примитивов, которые позволяют легко нарисовать прямоугольник, ломанную и окружность.

Рисунки - прямоугольники

Теперь нарисуем прямоугольник, координаты углов которого показаны на рисунке 1.

Рисунок 1 — Прямоугольник Python

Самый простой вариант — нарисовать его из четырех отрезков, использовав четыре команды line:

line (10, 20, 60, 20)

line (60, 20, 60, 50)

line (60, 50, 10, 50)

line (10, 50, 10, 20)

Их можно объединить в одну команду polygon:

polygon ([(10, 20), (60, 20), (60,50), (10,50), (10,20)] )

Эта команда строит ломаную линию по точкам. координаты точек перечисляются через запятую в квадратных скобках, координаты каждой точки сгруппированы в круглые скобки.

Команда polygon позволяет построить прямоугольников в модуле graph есть специальная  команда rectangle (по-английски — прямоугольник):

rectangle (10, 20, 60, 50)

Ей передаются четыре аргумента: координаты левого верхнего угла (сначала Х, потом — Y) и координаты правого нижнего угла. Эта команда может нарисовать прямоугольник и сразу залить его каким-то цветом. Цвет заливки нужно заранее задать с помощью команды brushColor (от английского brush — кисть и  color — цвет):

penColor («blue») # цвет границы

brusColor («yellow»)  # цвет заливки

rectangle(10, 20, 60, 50)

Этот фрагмент программы нарисует прямоугольник с синей границей и желтой заливкой.

Отметим, что команда polygon тоже выполняет заливку, если ломаная замкнутая (координаты первой и последней точек совпадают)

Рисунки - окружность

Нарисовать окружность можно с помощью команды circle (по-английски — окружность):

penColor («red»)

brusColor («green»)  

circle (200, 150, 50)

Первые два аргумента, переданные функции circle — это координаты её центра (сначала Х, потом Y), а третий аргумент — радиус окружности. Будет построена окружность красного цвета (это цвет пера), а внутренняя часть круга будет залита зеленым цветом (это цвет кисти).

Для вычисления координат пикселей, из которых строится окружность, используется один из вариантов алгоритма Брезенхэма.

Изменение координат

Напишем программу, которая получает с клавиатуры координаты Х и Y и рисует квадрат на холсте в точке с заданными координатами. здесь нужно разобраться в том, что считать координатами квадрата. Обычно выбирают некоторую базовую (или опорную) точку и договариваются, что координаты фигуры — это и есть координаты её опорной точки.

Для квадрата базовой точкой обычно считают его левый верхний угол. Обозначим его координаты через (Х, Y)

Пусть сторона квадрата равна а. Тогда, учитывая, что Х-координата увеличивается вправо, а Y  — координата — вниз, вычисляем координаты остальных углов (рисунок 2).

Рисунок 2 — Координаты рисунка

Программа рисования квадрата с заданными координатами выглядит следующим образом:

print («Введите координаты квадрата»)

х = int (input («x +  «)

y = int (input («y +  «)

a = 20

rectangle (x, y, x+a, y+a)

Для рисования использована команда rectangle  из модуля graph. Вообще-то данная команда рисует прямоугольники, но её можно использовать и для квадрата, ведь квадрат — это частный случай прямоугольника. Команде rectangle передаются координаты левого верхнего и правого нижнего углов, которые определены были ранее (рисунок 2).