Pythonで円を描く
Pythonで円を描いてみる。半径が1となる円、単位円で考えると円周上のx軸、y軸の座標はそれぞれ\(\displaystyle (\cos, \sin) \)となる。
円 : \(\displaystyle p = (\cos\theta, \sin\theta) \)
Pythonで綺麗な円を描く
綺麗な円を描いてみます。numpyのlinspace関数で\(\displaystyle -\pi \)から\(\displaystyle \pi \)を均等に100個の点に分割し、それを\(\displaystyle \cos \)と\(\displaystyle \sin \)でプロットしていきます。
円 : \(\displaystyle p = (\cos\theta, \sin\theta) \)
import numpy as np
from matplotlib import pylab as plt
# -πからπまでに100個の点を打つ
p = np.linspace(-np.pi, np.pi, 100)
# x軸とy軸の長さを同じにする
plt.figure(figsize=(5, 5))
# x軸をcos、y軸をsinで描画
plt.plot(np.cos(p), np.sin(p))
Pythonで楕円を描く
楕円は、x軸又はy軸の尺度を変えます。\(\displaystyle \cos \)(x軸)を\(\displaystyle \frac{1}{2} \)にすると縦長の楕円になりました。
楕円 : \(\displaystyle p = (d\cos\theta, b\sin\theta) \)
import numpy as np
from matplotlib import pylab as plt
# -πからπまでに100個の点を打つ
p = np.linspace(-np.pi, np.pi, 100)
plt.figure(figsize=(5, 5))
plt.plot(1 / 2 * np.cos(p), np.sin(p))
plt.xlim((-1.0, 1.0))
次は、\(\displaystyle \sin \)(y軸)を\(\displaystyle \frac{1}{4} \)にしてみました。すると横長の楕円になりました。
import numpy as np
from matplotlib import pylab as plt
import numpy as np
from matplotlib import pylab as plt
# -πからπまでに100個の点を打つ
p = np.linspace(-np.pi, np.pi, 100)
plt.figure(figsize=(5, 5))
plt.plot(np.cos(p), 1 / 4 * np.sin(p))
plt.ylim((-1.0, 1.0))
次は、楕円を傾けてみます。
傾きのある楕円 : \(\displaystyle p = (d\cos\theta\cos\omega – b\sin\theta\sin\omega, d\cos\theta\sin\omega + \sin\theta\cos\omega) \)
import numpy as np
from matplotlib import pylab as plt
import numpy as np
from matplotlib import pylab as plt
# -πからπまでに100個の点を打つ
p = np.linspace(-np.pi, np.pi, 100)
# 楕円のx軸、y軸
x = np.cos(p)
y = 1 / 4 * np.sin(p)
# 45度傾ける
rotate_p = np.pi / 4
plt.figure(figsize=(5, 5))
plt.plot(x * np.cos(rotate_p) - y * np.sin(rotate_p), x * np.sin(rotate_p) + y * np.cos(rotate_p))
Pythonで渦巻きを描く
渦巻きは、倍率を0から大きくしていきまがら円を繰り返し描いていきます。
渦巻き : \(\displaystyle p = (r\cos\theta, r\sin\theta) \)
import numpy as np
from matplotlib import pylab as plt
# 円10周分の点
p = np.linspace(-np.pi * 5, np.pi * 15, 1000)
# 渦巻きを作る用の倍率
r = np.linspace(0.0, 1.0, 1000)
# x軸とy軸の長さを同じにする
plt.figure(figsize=(5, 5))
plt.plot(np.cos(p) * r, np.sin(p) * r)
numpyでは、sin、cos、tanをそれぞれnp.sin、np.cos、np.tanで求められる。
記事を読んでいただきありがとうございました。