アイキャッチ画像

Pythonで描くリサジュー図形

リサジュー図形(リサージュ図形)という図がありまして、それをPythonのmatplotlibを使って描いてみました。ついでにアニメーションしました。

目次

  1. リサジュー図形とは
  2. Matplotlibを使ってリサジュー図形を描く

リサジュー図形とは

ウィキペディア から引用します。

互いに直交する二つの単振動を順序対として得られる点の軌跡が描く平面図形のこと。

振動する信号が2つあったとします。片方の信号をx成分に、もう片方の信号をy成分にした点をプロットします。その軌跡が描く図形をリサジュー図形と呼びます。リサージュ図形とも言います。

オシロスコープで経験する人が多いようですね。

Matplotlibを使ってリサジュー図形を描く

x座標とy座標をそれぞれ計算してプロットすれば良いので、プログラム自体は単純です。

ということで、アニメーションにしてみました。

次の3つの図形を描いてみます。

x = cos(theta), y = sin(theta + delta)
x = cos(theta), y = sin(b * theta)
x = cos(theta), y = sin(2 * theta + delta)

thetaは0から2πとし、deltaを0から2πまで変化させます。また、bも1から6まで変化させて、その後1まで戻します。

コードはこうしました。

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

fig = plt.figure(figsize=(3,3))

theta = np.linspace(0, 2*np.pi, 201)
delta_theta = np.linspace(0, 2*np.pi, 201)

ims = []
b = 1.0
muki = True

for i in delta_theta:
    x = np.cos(theta)
    y1 = np.sin(theta + i)
    y2 = np.sin(b*theta)
    y3 = np.sin(2*theta + i)
    im = plt.plot(x, y1, 'b', x, y2, 'g', x, y3, 'r')
    ims.append(im)
    if muki is True:
        b = b + 0.05
        if b > 6:
            muki = False
    else:
        b = b - 0.05

ani = animation.ArtistAnimation(fig, ims, interval=30)

#plt.show()

ani.save('lissajous.gif', writer='imagemagick')

出力されるgifファイルは、このようになります。

リサジュー図形

広告

未分類カテゴリの投稿

  • NHKのAIの番組を見て考えたことなど

    NHKのマネーワールドという番組を見て、ベーシックインカムについて少し考えてしまいました。

  • Pythonで描くリサジュー図形

    リサジュー図形(リサージュ図形)という図がありまして、それをPythonのmatplotlibを使って描いてみました。ついでにアニメーションしました。

  • カメラとAIによる補正について考えたこと

    Pixel3のカメラのAIによる暗部補正がすごい そうです。この記事を受けて、ソフトウェアでの補正さえあればカメラのメカ的な性能なんて低くてもかまわない的な意見を見まして、ちょっと考えてしまいました。

  • キーレスエントリーの電池を交換した話

    キーレスエントリーのキーの電池が切れるとのメッセージがメーターパネルに表示されたので、早速電池を交換してみました。車は、フィットハイブリッド(2015年モデル)です。

  • メキシコの北米向け自動車輸出

    アメリカのトランプ大統領が、メキシコからの輸入品に対する制裁関税を課すと発表しました。これを受けて自動車関連株に影響が出たとの報道がありまして、ちょっと考えてみました。

  • リサジュー図形を3次元的に描いてみる

    リサジュー図形(リサージュ図形)という図形がありまして、Pythonを使ってそれを3次元的にプロットしてみました。ついでにアニメーションもしてみました。

  • 自動車業界の近未来についての妄想

    SingulariySocietyというサロンで中島聡さんが 自動車業界の近未来 という投稿をされました。