もう少し桜らしく ~信号処理で花を描く~その2
| 固定リンク
みなさん、こんにちは、
少し前に、信号処理ソフト Scilab を使って花を描くお話を書きました。
そのとき、桜の花をもう少し本物らしくしたいと思った人もいると思います。
今日は、その方法を紹介しましょう。
花を描くには、中心からの長さとx軸からの角度で座標を表す極座標プロットを使います。
花は円周方向に規則的な形をしていますから、まず、0から2πラジアンまでの角度を作ります。πの256分の一の刻みでつくってみます。
omega = 0 : %pi / 256 : 2 * %pi ;
前回は次の式を使って中心からの半径方向の距離を角度に依存して作りました。
rc = 0.5 + 0.5 * sin( 5 * omega ) + 0.1 * sin( 15 * omega ) ;
そして、次の極座標プロットで花を描いたのです。
polarplot( omega , rc ) ;
これを通常の2次元平面でプロットするには
plot( omega , rc ) ;
とすればよいわけなのですが、角度とともに半径方向の距離がどう変わるかを見てみましょう。
これは、1周2πで5回振動する正弦波とその3倍の15回振動する正弦波を足し合わせたものなので、花びらの付け根にあたるところでも振動が現れてしまいます。3倍の振動は3倍波と呼ばれていることは、前回もご紹介しました。
そこで、この3倍波のほうに5回振動をかけ合わせれば、下のほうで振動が現れなくなるはずです。早速やってみましょう。
re = 0.5 * ( 1 + sin( 5 * omega ) ) + 0.3 * ( sin( 15 * omega ) .* ( 0.5 + 0.5 * sin( 5 * omega ) ) ) ;
さて、どんな振動になるでしょうか?
plot( omega , re ) ;
それが次の図です。
このようなものを上のほうを押し縮めるにはどうすればよいでしょうか?平方根(2乗根)の関数を使うと先を縮められそうですが、もっと極端に縮めてみましょう。6乗根を試してみましょう。
re6 = re .^ ( 1 / 6 ) ;
によって計算できます。これを極座標表示するには次のようにすればいいです。
polarplot( omega , re6 ) ;
これで次のような図が表示されます。
「おもしろメディア学」カテゴリの記事
- 【おもしろメディア学】 見ているものをそのまま信じてはいけない.(その2)(2018.01.29)
- お茶とユーザーインタフェース(2017.12.12)
- 声の高さの科学(2017.11.16)
- おもしろメディア学:スウエーデンのタペストリーと減法混色(2017.10.01)
- 100件記念:メディア学部の教員が所属する「学会」ってなに?(2017.07.07)
「在学生向け」カテゴリの記事
- インドネシア弾丸旅行2018(その5)Semarangの提携校UDINUSにおける講義(2018.04.06)
- 友人の才能を指摘(2018.04.05)
- メディア学部の分野別講義分類表[2018年度版](シラバスリンク付)(2018.04.04)
- インドネシア弾丸旅行2018(その4) University of AMIKOM Yogyakartaの施設紹介と産学連携(2018.04.03)
- 集中実技 I (スキー)体験レポート!(2018.04.02)
「高校生向け」カテゴリの記事
- 2018年3月卒業の「プロダクトデザイン」の皆さんを紹介します(その1)(2018.04.18)
- インドネシア弾丸旅行2018(その6)ジャカルタの提携校マルチメディア大学(UMN)訪問(2018.04.07)
- インドネシア弾丸旅行2018(その5)Semarangの提携校UDINUSにおける講義(2018.04.06)
- インドネシア弾丸旅行2018(その4) University of AMIKOM Yogyakartaの施設紹介と産学連携(2018.04.03)
- 集中実技 I (スキー)体験レポート!(2018.04.02)