1. ホーム
  2. リサージュ図形

書籍「マス・アート~真理、美、そして方程式~」で紹介されていたリサージュ図形を基本とした作品の数々。リサージュ図形の可能性に興味を惹かれました。

リサージュ曲線

このサイトで作成していきたい作品は、以下のパラメータ表示された、リサージュ曲線を用いて描いていきたいと思います。

\[ x(t) = \sum_{n=1}^{N} A_n \sin ( \omega_{x,n} t + \theta_{x,n}), \ \ y(t) = \sum_{n=1}^{N} B_n \sin ( \omega_{y,n} t + \theta_{y,n}) \]

ここで、\( A_n, \ \ B_n \)は振幅、\( \omega_{x,n}, \ \ \omega_{y,n} \)は周波数、そして\( \theta_{x,n}, \ \ \theta_{y,n} \)は位相をそれぞれ表しています。また、\[ A_1 \geq A_2 \geq \cdots \geq A_N, \ \ B_1 \geq B_2 \geq \cdots \geq B_N \]を満たします。

\(N\)は項数を表しています。この値が大きくなれば、より複雑でより豊かな美しい図形を描いていくことができます。

これらの値を設定してパラメータ\(t\)を動かしていくことで\(xy\)平面上にさまざまな図形を描いていくことができます。

リサージュ曲線を描くための関数のプログラムコードをここで紹介しておきます。以降でさまざまなリサージュ図形を描いていくときに利用しています。

// リサージュ曲線を描く関数
void drawLissajous(
  int N, // 項数
  float[] r_x, // x方向の振幅に関する配列
  float[] omega_x, // x方向の周波数に関する配列
  float[] theta_x, // x方向の位相に関する配列
  float[] r_y, // y方向の振幅に関する配列
  float[] omega_y, // y方向の周波数に関する配列
  float[] theta_y, // y方向の位相に関する配列
  float cycle // 回転数
){
  float x, y;
  int num = 10000;
 
  beginShape();
  for(int i=0; i<num*cycle; i++){
    x = 0.0;
    y = 0.0;
    for(int j=0; j<N; j++){
      x += r_x[j] * sin( omega_x[j] * radians(i*360.0/num) + radians(theta_x[j]) );
      y += r_y[j] * sin( omega_y[j] * radians(i*360.0/num) + radians(theta_y[j]) );
    }
    vertex(x,y);
  }
  endShape();
}

リサージュ図形(\(N=1\))

\( N=1 \)でのリサージュ図形について考えます。この場合のリサージュ曲線は以下のようになります。

\[ x(t) = A_1 \sin ( \omega_{x,1} t + \theta_{x,1}), \ \ y(t) = B_1 \sin ( \omega_{y,1} t + \theta_{y,1}) \]

なお、一般的にリサージュ図形やリサージュ曲線と言えば、この\(N=1\)の場合に相当するようですが、ここではより一般的な\(N \geq 2\)の場合も含めて、リサージュ図形やリサージュ曲線と呼んでいます。

ここでは、まず\(x\)方向と\(y\)方向とで、位相をずらした場合と周波数をずらした場合について考察しています。

リサージュ図形(\(N=2\))

\( N=2 \)でのリサージュ図形について考えます。 この場合のリサージュ曲線は以下のようになります。

\[ x(t) = A_1 \sin ( \omega_{x,1} t + \theta_{x,1})+A_2 \sin ( \omega_{x,2} t + \theta_{x,2}) , \\ y(t) = B_1 \sin ( \omega_{y,1} t + \theta_{y,1})+ B_2 \sin ( \omega_{y,2} t + \theta_{y,2}) \]

ここでは、大きい振幅\(A_1, \ \ B_1 \)の軌道に対して小さい振幅\(A_2, \ \ B_2 \)の軌道を加えることでどのような図形が描けるかを見ていきたいと思います。

リサージュ図形(\(N=3\))

ここでは、\( N=3 \)でのリサージュ図形を用いた作品を紹介します。

\[ x(t) = A_1 \sin ( \omega_{x,1} t + \theta_{x,1})+A_2 \sin ( \omega_{x,2} t + \theta_{x,2})+A_3 \sin ( \omega_{x,3} t + \theta_{x,3}) , \\ y(t) = B_1 \sin ( \omega_{y,1} t + \theta_{y,1})+ B_2 \sin ( \omega_{y,2} t + \theta_{y,2}) + B_3 \sin ( \omega_{y,3} t + \theta_{y,3}) \]

ギャラリー

まず、書籍「パソコンで描く紋様とデザイン コンピュータグラフィックスの新しい試み」のp.15,16に掲載されていたものから面白いと思ったものを選び、Processingで再現したものになります。なお、キャプションをクリックすると、そのプログラムコードを見ることができます。

次に、書籍「非線形ダイナミクスとカオス」のp.302,303で解説されているトーラス結び目をリサージュ図形として描いてみました。 キャプションをクリックすると、トーラス結び目とリサージュ図形との関係についての解説とそのプログラムコードを見ることができます。

鉄の魔神

ここでは、書籍「マス・アート~真理、美、そして方程式~」のp.133で紹介されていた鉄の魔神という装置で描かれたリサージュ図形の再現を試みています。

鉄の魔神で描いた図形を再現

トーラス型コイル

ここでは、リサージュ図形の形の変形の例として、トーラス型コイルと呼ぶ図形を描くことを考えてみます。

トーラス型コイル

リサージュ図形の回転に関する考察

ここでは、\(N=2\)以上のリサージュ図形において、振幅の大きさが大きな軌道(主軌道と呼ぶことにします)に、振幅の大きさが小さくて周波数が主軌道よりも大きい軌道(副軌道と呼ぶことにします)を加えるとき、副軌道のリサージュ曲線を主軌道に対して垂直に交わるように回転することを考えます。

副軌道の回転

リサージュ図形(\(N=2\)) 2つ目の波形の回転

ここでは、\(N=2\)のリサージュ図形において2つ目の波形を回転した場合の効果について考えてみます。

2つ目の波形を回転した場合の効果(上段:回転前、下段:回転後)

拡張されたリサージュ図形

記事「リサージュ図形の回転に関する考察」において、sin,  cos関数の引数がパラメータtの線形関数ではなく、非線形になるようなものを考え、これを拡張されたリサージュ図形として考えてはどうかと示唆しました。ここでは、この拡張されたリサージュ図形を描いてみます。

楕円トーラス型コイル

参考文献

今回のリサージュ図形を用いた作品を考える際に参考にした文献を以下に示しておきます。

コメントを残す