Компьютерная графика на питоне

Графика в Python: Tkinter и Canvas

В статье рассматривается создание графических интерфейсов с помощью библиотеки Tkinter. Отдельное внимание уделяется виджету Canvas, предназначенному для рисования (draw) в Python.

Tkinter представляет собой графическую кроссплатформенную библиотеку на основе средств Tk. Это свободное ПО, которое включено в стандартную библиотеку языка программирования Python.

В состав Tkinter входит много компонентов. Один из них — Canvas, он же «Холст». Canvas применяется в Python для вывода следующих графических примитивов:

  • линий,
  • прямоугольников,
  • эллипсов,
  • текста,
  • окон,
  • изображений.

Но прежде чем продолжить, следует вкратце рассказать о существующих методах позиционирования элементов.

Позиционирование элементов в Python. Python grid

Для позиционирования элементов, во время работы с Tkinter используют разные методы:

Метод grid позволяет поместить элемент в конкретную ячейку условной сетки либо грида. Используется ряд параметров:

  • column — это номер столбца, отсчитывается с нуля;
  • row — это номер строки, отсчитывается с нуля;
  • columnspan — указывает число столбцов, занимаемых элементом;
  • rowspan — указывает число строк;
  • ipadx и ipady — подразумеваются отступы по горизонтали и вертикали от границ компонента до текста компонента;
  • padx и pady — аналогичные отступы, но от границ ячейки грида до границ компонента;
  • sticky — определяет выравнивание элемента в ячейке в случае, когда ячейка больше компонента.
Читайте также:  Цепочка золотая бисмарк питон

Для начала работы с Tkinter библиотеку сначала надо импортировать:

Ниже определен грид из девяти кнопок:

Canvas: рисуем линии в Python

Виджет Canvas предоставляет функциональность, с помощью которой разработчик может нарисовать (drawn) графику в Tkinter. Для чего может понадобиться эта графика? К примеру, для получения статистики, создания своих виджетов, отрисовки небольших игр.

Начинать освоение Canvas лучше всего с линий — примитивных геометрических элементов. В Canvas линию с нужным размером можно создать через метод create_line() . Метод mainloop используется для вызова окна виджета.

У create_line() есть параметры — это координаты x и y . Именно они обозначают начальные и конечные точки будущего линейного отрезка. Вот как этот метод рисует (draws) обычную вертикальную линию:

Можно создавать и пунктирную линию — для этого существует опция dash . У этой опции есть собственные значения, помещенные в скобки. В примере это (4, 2).

  • цифра 4 обозначает длину тире (точки) в пикселях;
  • цифра 2 отвечает за ширину (width) пустого промежутка, существующего между тире (точками).

Если прописать dash=(1, 1) , на выходе получится линия из точек.

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

В результате весь код отработает следующим образом:

Canvas: рисуем цветные прямоугольники в Python

Цвет — это объект, отображающий комбинацию трех цветов (красного, зеленого, синего — RGB). С помощью кода ниже были нарисованы прямоугольники. Также они были закрашены различными цветами.

Так создается виджет Canvas:

Далее создается прямоугольник, для чего используется create_rectangle() . Здесь надо прописать 4 параметра:

— координатное положение верхней левой ограничительной точки (левого верхнего угла);

— координатное положение нижней правой ограничительной точки (нижнего правого угла).

Если есть необходимость, то посредством параметра outline у прямоугольника задается цвет контура. Окрасить всю внутреннюю область можно с помощью параметра fill :

А вот и итоговый результат:

Рисуем сложные формы

Можно без проблем нарисовать круг, овал и прочие фигуры, включая криволинейные. Именно для этой цели и предназначен код ниже:

Благодаря этому коду будут созданы такие геометрические фигуры, как круг, прямоугольник, овал, дуга, многоугольник. Также следует обратить внимание на контур — он окрасится в красный цвет, а заливка будет зеленой. Ширина контура (width) — 2 px.

Сначала создается круг. Для его получения в Python задействуется метод create_oval() . Первые 4 параметра в нем нужны для указания ограничивающих координат. Здесь x и y являются координатами правой нижней и верхней левой точек квадрата, где помещен круг:

Аналогично создается и овал — меняются лишь первые 4 параметра.

Следующий этап — прямоугольник. Нарисованный restangle тоже имеет координатные значения x и y , играющие роль ограничительных точек.

Далее создается дуга. Так как она — это часть круга, то надо указать ограничительные координаты дуги. Ее угол устанавливается посредством параметра start , а размер угла — с помощью параметра extent :

Последнее — это многоугольник. Так как присутствует много углов, надо задействовать специальный метод create_polygon() , позволяющий задать нужное число координатных значений:

Остается посмотреть результат:

Также с помощью Canvas можно без проблем вставлять изображения и рисовать текст (text), используя шрифты разной высоты (height) и стиля (style).

Другие GUI-библиотеки для Python

Кроме библиотеки Tkinter и виджета Canvas, существует и масса других графических библиотек, применяемых для создания рисунков (drawings). Среди них:

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

Drawing with Turtle

Отдельного упоминания заслуживает модуль Turtle (по аналогии с черепашками Turtles). Этот модуль позволяет создавать на Питоне рисунки и другие графические объекты, включая игры в специальном окне. Для того чтобы приступить к рисованию (drawing), надо сначала присоединить его (импортировать). Делается это одним из 3-х способов:

2) from turtle import open as t ;

Drawing with Pygame

Pygame — набор модулей, используемый в тех случаях, когда нужно нарисовать 2D-игру. Также Pygame нередко называют библиотекой/фреймворком. С его помощью создают как компьютерные игры, так и мультимедийные приложения.

Pygame сравнивают с Tkinter, который с помощью своих функций и классов предоставляет языку программирования Python доступ к графической библиотеке Tk.

Если нужны дополнительные детали по теме, смотрите источники ниже:

  • https://metanit.com/python/tutorial/9.4.php;
  • https://python-scripts.com/tkinter-introduction;
  • https://techrocks.ru/2018/04/26/13-python-gui-frameworks/;
  • http://www.239.ru/sites/default/files/userdata/urok_4._cherepashya_grafika_v_python.pdf;
  • https://docs.python.org/3/library/turtle.html;
  • https://python-scripts.com/tkinter-canvas-example.

Источник

Как использовать Python для работы с графикой и анимацией

Освойте графику и анимацию в Python с помощью популярных библиотек: Matplotlib, Pillow, Pygame и Manim!

Creating graphics and animations with Python.

Python является мощным и гибким языком программирования, который предоставляет множество возможностей для работы с графикой и анимацией. В этой статье мы познакомимся с основными библиотеками и техниками, которые помогут вам создавать визуализации и анимации на Python.

Библиотеки для работы с графикой

Matplotlib

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

Пример использования Matplotlib:

import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.plot(x, y) plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.title('Simple Line Plot') plt.show()

Pillow (PIL)

Pillow (Python Imaging Library) — это библиотека для работы с изображениями. Она позволяет открывать, изменять и сохранять изображения в различных форматах. Некоторые возможности Pillow включают изменение размера изображения, поворот, наложение фильтров и т.д.

Пример использования Pillow:

from PIL import Image, ImageFilter image = Image.open('example.jpg') blurred_image = image.filter(ImageFilter.BLUR) blurred_image.save('blurred_example.jpg')

Библиотеки для работы с анимацией

Pygame

Pygame — это кросс-платформенная библиотека для создания видеоигр и мультимедийных приложений на Python. Она предоставляет возможности для работы с графикой, звуком, управлением и столкновениями объектов.

Пример использования Pygame:

import pygame pygame.init() screen = pygame.display.set_mode((800, 600)) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False screen.fill((255, 255, 255)) pygame.draw.circle(screen, (0, 0, 255), (400, 300), 50) pygame.display.flip() pygame.quit()

Manim

Manim (Mathematical Animation Engine) — это библиотека для создания математических анимаций на Python. Она была разработана Грантом Сандерсоном (3Blue1Brown) и предназначена для визуализации математических концепций и создания образовательных видеороликов.

Пример использования Manim:

from manim import * class CircleScene(Scene): def construct(self): circle = Circle() self.play(Create(circle)) self.wait() config.media_width = "60%" CircleScene().render()

😉 Теперь вы знакомы с основными библиотеками и техниками для работы с графикой и анимацией на Python. Попробуйте использовать эти инструменты в своих проектах и узнайте больше о возможностях каждой библиотеки, изучая их документацию и примеры. Удачи вам в освоении мира Python-разработки!

Источник

Оцените статью