レッスン 11:3次元で平面を表示

fig 11

レッスン10 とレッスン4 をご参照ください。
python + Matplotlib の3D 空間での平面表示は、基本的に「2つの線分の間に膜を貼る」という方法で作ります。
今回のレッスン もその手法を用いますが、2つの線分の端を1点に集中させて三角形にしています。


# python-3D-graphics-step-by-step-11.py    09/04/2023 by Kero
# (11) show a plane in 3D
    # In a fig-window, you can change view point by mouse.
    # See (4)
    
# Preparation 
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# graph area settings
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# make figure (a bit complicated)
x = np.array([[1, 0],[1, 2]]) # 2重リストの中身はxyzを縦に読む。
y = np.array([[2, 0],[2, 1]]) # 1番目の2重リストは(1,2,3)と
z = np.array([[3, 0],[3, 0]]) # (0,0,0)を結ぶ線分のこと。以下同文。
plane = ax.plot_surface(x, y, z) # 2つの線分が成す面を'surface'で描く。
    # ただし、ax.plot_surface(...)はリストオブジェクトではないので、
    # アニメにするときには[ ]で囲ってオブジェクトにする必要あり。
fig.savefig('python-3D-graphics-step-by-step-11.png')

# show figure
plt.show()

「make figure」 の段落の説明をします。
2つの線分を指定します。16〜18行目をタテに読んでください。
(1, 2, 3)〜(0, 0, 0) と(1, 2, 3)〜(2, 1, 0) の線分です。
この2つの線分でできる面を、’ax.plot_surface(…)’ で作ります。
ファイルへの保存は「壁面」で一括して行うので、’fig.savefig(…)’ で行っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です