Создание кривой Безье

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом уроке мы узнаем, как создать кривую Безье с использованием библиотеки Matplotlib для Python. Кривая Безье - это математическая кривая, которая широко используется в компьютерной графике для создания гладких и эстетически привлекательных форм. Мы создадим простой пример кривой Безье с использованием объекта PathPatch Matplotlib.

Советы по работе с ВМ

После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт библиотек

Для создания кривой Безье с использованием Matplotlib нам нужно импортировать необходимые библиотеки. Мы импортируем matplotlib.pyplot для создания графика и matplotlib.patches для создания объекта PathPatch.

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

Создание пути

Далее мы создадим объект Path для кривой Безье. Объект Path принимает список вершин и кодов, которые определяют тип пути между вершинами. В этом случае мы будем использовать код MOVETO, чтобы переместиться в начальную точку, за которым следуют два кода CURVE3, чтобы указать точки управления и конечную точку, и, наконец, код CLOSEPOLY, чтобы закрыть путь.

Path = mpath.Path

bezier_path = Path([(0, 0), (1, 0), (1, 1), (0, 0)],
                   [Path.MOVETO, Path.CURVE3, Path.CURVE3, Path.CLOSEPOLY])

Создание объекта PathPatch

Теперь, когда у нас есть объект Path, мы можем создать объект PathPatch, который будет использоваться для рисования кривой Безье на графике. Мы установим facecolor в 'none', чтобы нарисовалась только кривая, а не заливалась.

bezier_patch = mpatches.PathPatch(bezier_path, fc="none")

Создание графика

Теперь мы можем создать график, добавив объект PathPatch на оси и нарисовав красную точку, которая должна лежать на кривой. Также мы установим заголовок графика в 'Bezier Curve'.

fig, ax = plt.subplots()

ax.add_patch(bezier_patch)
ax.plot([0.75], [0.25], "ro")
ax.set_title('Bezier Curve')

plt.show()

Завернный код должен выглядеть так:

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

Path = mpath.Path

bezier_path = Path([(0, 0), (1, 0), (1, 1), (0, 0)],
                   [Path.MOVETO, Path.CURVE3, Path.CURVE3, Path.CLOSEPOLY])

bezier_patch = mpatches.PathPatch(bezier_path, fc="none")

fig, ax = plt.subplots()

ax.add_patch(bezier_patch)
ax.plot([0.75], [0.25], "ro")
ax.set_title('Bezier Curve')

plt.show()

Резюме

В этом уроке мы узнали, как создать кривую Безье с использованием библиотеки Matplotlib для Python. Мы использовали объекты Path и PathPatch для создания кривой и добавили ее на график. Также мы нанесли красную точку на кривую, чтобы показать, что она лежит на кривой. Кривая Безье широко используется в компьютерной графике для создания гладких и эстетически привлекательных форм.