三角形の 3D 曲面

Beginner

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

はじめに

この実験では、Python の Matplotlib ライブラリを使って三角形メッシュで 3D 曲面を作成する方法を学びます。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、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)

3D 曲面を作成する

plot_trisurf関数を使って 3D 曲面を作成します。

ax = plt.figure().add_subplot(projection='3d')
ax.plot_trisurf(x, y, z, linewidth=0.2, antialiased=True)

plt.show()

まとめ

この実験では、Python の Matplotlib ライブラリを使って三角形メッシュ付きの 3D 曲面を作成する方法を学びました。必要なライブラリをインポートし、半径と角度の変数を定義し、半径と角度の空間を作成し、極座標を直交座標に変換し、プリングルの曲面を作成するための z を計算し、plot_trisurf関数を使って 3D 曲面を作成しました。