レッスン 12:3次元でヨコに2面を接続

fig 12

レッスン11 からの展開です。
ヨコに隣同士の2面をつなぎます。

# python-3D-graphics-step-by-step-12.py    10/04/2023 by Kero
# (12) show consecutive planes in 3D
    # In a fig-window, you can change view point by mouse.

    
# 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')

# add a side plane (a bit complicated)
x = np.array([[1, 0],[1, 2],[1,2]]) # 2重リストの中身はxyzを縦に読む。2点で1線分。
y = np.array([[2, 0],[2, 1],[3,3]]) # 3本の線分を設定。1本目と2本目の線分で
z = np.array([[3, 0],[3, 0],[3,0]]) # 1面、2本目と3本目の線分でもう1面。
planes = ax.plot_surface(x, y, z) # 2つの線分が成す面を'surface'で描く。
    # なお、線分間は平行でなくても良いが、平行でないと不思議な曲面になる。
fig.savefig('python-3D-graphics-step-by-step-12.png')

# show figure
plt.show()

レッスン11 では、線分(1, 2, 3)〜(0, 0, 0) と(1, 2, 3)〜(2, 1, 0) が成す面を描きました。
今回は、上記の線分(1, 2, 3)〜(2, 1, 0)を一辺とする面を追加します。
もう一辺(線分)は、(1, 3, 3)〜(2, 3, 0) です。16〜18行目の中に追記しています。
要するに、線分を構成する2点の座標を一組にして、x, y, z 配列に[ ]で加えれば、次から次とヨコ隣の面ができます。

コメントを残す

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