Введение
В этом лабе мы узнаем, как создавать 3D поверхность с использованием треугольной сетки с помощью библиотеки Python Matplotlib.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем библиотеки
Сначала нам нужно импортировать необходимые библиотеки:
import matplotlib.pyplot as plt
import numpy as np
Определяем переменные
Мы определим переменные для радиусов и углов:
n_radii = 8
n_angles = 36
Создаем пространства радиусов и углов
Мы создадим пространства радиусов и углов с использованием функции linspace:
## Make radii and angles spaces (radius r=0 omitted to eliminate duplication).
radii = np.linspace(0.125, 1.0, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)[..., np.newaxis]
Преобразуем полярные координаты в декартовы координаты
Мы преобразуем полярные координаты в декартовы координаты:
## Convert polar (radii, angles) coords to cartesian (x, y) coords.
## (0, 0) is manually added at this stage, so there will be no duplicate
## points in the (x, y) plane.
x = np.append(0, (radii*np.cos(angles)).flatten())
y = np.append(0, (radii*np.sin(angles)).flatten())
Вычисляем z для создания поверхности чипса
Мы вычислим z для создания поверхности чипса:
## Compute z to make the pringle surface.
z = np.sin(-x*y)
Создаем трехмерную поверхность
Мы создадим трехмерную поверхность с использованием функции plot_trisurf:
ax = plt.figure().add_subplot(projection='3d')
ax.plot_trisurf(x, y, z, linewidth=0.2, antialiased=True)
plt.show()
Резюме
В этом практическом занятии мы научились создавать трехмерную поверхность с использованием треугольной сетки с помощью библиотеки Python Matplotlib. Мы импортировали необходимые библиотеки, определили переменные для радиусов и углов, создали пространства радиусов и углов, преобразовали полярные координаты в декартовы координаты, вычислили z для создания поверхности чипса и создали трехмерную поверхность с использованием функции plot_trisurf.