Треугольные трехмерные поверхности

Beginner

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

Введение

В этом лабе мы узнаем, как создавать 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.