yslog

ゆるめに技術ブログかきます。Maya_Python

Maya上でリサージュ図形をビジュアライズする

三角関数のお勉強してたらリサージュ図形ってものがあるらしい。フムフム。

高校の時は文系選択だったので範囲外だった模様。

そもそも絵ばっか描いて勉強はあんまり(ゲフンゲフン

 

自分のメモもかねてちょっくら検証してみました。

 

さておき、要約すると正弦波(又は余弦波)の振動、振幅、位相の違いを表す図形、ということらしい(あってるかな?)

 

リサジュー図形 - Wikipedia

 

ざっと図解

サインカーブ

半径が1の単位円を考えてsinθ、cosθそれぞれのサインカーブを描いてみましょう。

f:id:ys_45:20180304215917p:plain

 0°≦θ≦360°のとき

sinθは半径1なのでy/1

0→1→0→-1→0と増減します。

こんな感じですねー↓

f:id:ys_45:20180304221641p:plain

※360°は2πラジアン

cosθはx/1となるので1→0→-1→0→1と増減します。

で、こう。

f:id:ys_45:20180304221935p:plain

図形を描く

この時の(coxθ, sinθ)を(x, y)座標とする図形を描くと半径1の円になります。

座標は(1, 0)→(0, 1)→(-1, 0)→(0, -1)→(0, 1)と変遷します。

f:id:ys_45:20180304222743p:plain

 

sinθを30°ずらした図形を考えるとどうなるでしょう?

座標は(cosθ, sin(θ+30))となり、y座標が30°ぶん先行した値となります。

示す図形はこんな楕円形に

f:id:ys_45:20180304223444p:plain

90°ずらすとsinとcosの波形が一致するので直線になります。

(cosθ, sin(θ+90°))

f:id:ys_45:20180304223558p:plain

上記ではθのオフセットを考えましたが、比率が違う場合はどうなるでしょう?

(x, y) = (cosθ, sin2θ)

cosに比べてsinが2倍の比率で変動します。

x軸が1周期する間にy軸が2周期するので8の字のようなラインを描きます。

f:id:ys_45:20180304224344p:plain

比率とオフセットを変化させると以下のような図形が得られるようで。

↓拾い物です。こちらはsinθどうしの比較なのでxを90°ずらして考えてください。

f:id:ys_45:20180304224626p:plain

やっぱりビジュアライズ

図示ばっかりじゃわからん!ってことでMayaでビジュアライズしてみました。

コードはこちら。

実行するとロケータが取り出され、UI上でのθの比率オフセット変更に合わせてリサージュ図形を描きます。

Visualize lissajuous figure in Maya UI

上記図示を再現

f:id:ys_45:20180304225332p:plain

f:id:ys_45:20180304225426p:plain

f:id:ys_45:20180304225441p:plain

f:id:ys_45:20180304225501p:plain

いろんな波形を取り出してみます。

 

f:id:ys_45:20180304230203g:plain

オフセットを変更するとまるで3D空間上で回転させているように見えたりしておもしろいですねー。