
トーラスの媒介変数表示を利用して、3次元の図をPythonで出力するコードを紹介します。
媒介変数表示によるPythonコード
Pythonの出力コード
$R$ と $r$ の値を変更すると、違う円周の長さを持つトーラスができます。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# トーラスの媒介変数表示の関数
def torus_parametric(u, v, R, r):
x = (R + r * np.cos(v)) * np.cos(u)
y = (R + r * np.cos(v)) * np.sin(u)
z = r * np.sin(v)
return x, y, z
# 媒介変数の範囲
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, 2 * np.pi, 100)
u, v = np.meshgrid(u, v)
# トーラスのパラメータ
R = 3 # 大円の半径
r = 1 # 小円の半径
# 媒介変数を用いて座標を計算
x, y, z = torus_parametric(u, v, R, r)
# 3Dプロット
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cmap='viridis')
# すべての軸の目盛を合わせる
ax.set_box_aspect([np.ptp(coord) for coord in [x, y, z]])
# グラフを表示
plt.show()
トーラスの出力例
$R$ と $r$ を色々と変更して、綺麗に見えるトーラスを探しました。



