三角形の 3D 曲面

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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

VMのヒント

VMの起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebookを使って練習しましょう。

時々、Jupyter Notebookが読み込み終わるまで数秒待つ必要があります。Jupyter Notebookの制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labbyにお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-49013{{"三角形の 3D 曲面"}} matplotlib/figures_axes -.-> lab-49013{{"三角形の 3D 曲面"}} python/booleans -.-> lab-49013{{"三角形の 3D 曲面"}} python/comments -.-> lab-49013{{"三角形の 3D 曲面"}} python/lists -.-> lab-49013{{"三角形の 3D 曲面"}} python/tuples -.-> lab-49013{{"三角形の 3D 曲面"}} python/importing_modules -.-> lab-49013{{"三角形の 3D 曲面"}} python/numerical_computing -.-> lab-49013{{"三角形の 3D 曲面"}} python/data_visualization -.-> lab-49013{{"三角形の 3D 曲面"}} end

ライブラリのインポート

まず、必要なライブラリをインポートする必要があります。

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曲面を作成しました。