NCVCの作者のページ

Python でエピトロコイド曲線の座標を出力する

Python でエピトロコイド曲線の座標を出力する

 リスト6.7(p.206)と同じ処理です. numpy ライブラリを使うのでインストールしておきましょう.


import numpy as np

# ローターの大きさを半径で指定
R=50.0
# ステーショナリギアとインナーギアの中心差分を指定
e=10.0
# 分割数
s=120.0

t=2.0*np.pi/s
for q in np.arange(0.0, 2.0*np.pi*3.0, t):
    q3 = q / 3.0
    px = e * np.cos(q) + R * np.cos(q3)
    py = e * np.sin(q) + R * np.sin(q3)
    print(str(px)+','+str(py))

rotary.py

ついでに結果をグラフ化してみます. matplotlib ライブラリが必要です.


import numpy as np
import fileinput
import matplotlib.pyplot as plt

dx, dy = np.loadtxt(fileinput.input(), delimiter=',', unpack=True)

plt.plot(dx, dy, c='k')
plt.axhline(0, linewidth=2)
plt.axvline(0, linewidth=2)

plt.show()

graph.py

p.206 の実行例6.8 では Excel に読ませるためファイル(CSV)に出力しましたが,
py rotary.py | py graph.py
とすると,以下のようなグラフを出力します. matplotlib はグラフ作成には必須のライブラリなので,ぜひご活用ください.

<< 前のページに戻るPythonインデックスへ