トーラスの媒介変数表示を利用して、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$ を色々と変更して、綺麗に見えるトーラスを探しました。

コメントを残す

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