[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プログラミング、3DCGとその他いろいろについて
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
このページにあるような波を、波を重ねることで作ってみます。
今回作る式はリーマニアン・スカラー波。うさんくさい名前ですが、あるSF作家がSFのネタとして考えた波です――あるいは数学で遊んでいたら面白かったのでSFのネタにしただけでしょうか。こんな感じの波です:
以前リーマニアン・スカラー波で遊べるページを作りました。遊べばわかりますが、リーマニアン・スカラー波は集まりながら広がりゆくという、言葉にすると意味不明な性質を持ちます。それを単純な波だけを使って自分で作ってみようというのが今回の目的です。難しいものはバラせば簡単になることがあります。
ちなみに、ここで言う「単純な波」とは、次のような、全く広がっていないようにみえる波です:
この手の単純な波を10個くらい足すだけで、広がっているように見える波を作ることができます
これはリーマニアン・スカラー波です!上の例では2次元の平面上を動き、こちらは1次元の線上の波だという違いはありますが、集まりながら広がっていくという点では同じです。
ちなみにこの画像は、以前作った数式を入力すると波を表示するページです:
このページの数式入力欄に、次の式をコピーして貼り付けてエンターキーを押してみてください。そうすればこの広がりゆく(?)波が表示されます。
( +sin(5 * (cos(1.2) * (x - 5) + sin(1.2) * t)) +sin(5 * (cos(1.3) * (x - 5) + sin(1.3) * t)) +sin(5 * (cos(1.4) * (x - 5) + sin(1.4) * t)) +sin(5 * (cos(1.5) * (x - 5) + sin(1.5) * t)) +sin(5 * (cos(1.6) * (x - 5) + sin(1.6) * t)) +sin(5 * (cos(1.7) * (x - 5) + sin(1.7) * t)) +sin(5 * (cos(1.8) * (x - 5) + sin(1.8) * t)) +sin(5 * (cos(1.9) * (x - 5) + sin(1.9) * t)) +sin(5 * (cos(2.0) * (x - 5) + sin(2.0) * t)) ) / 10;
これは少しずつ方向の異なる9つのサイン波を足す式です(そのまま足すと大きくなりすぎて図がわかりにくくなるので、さいごに10で割り、見やすいサイズにしています)。
これは広がりゆく波に見えますが、それを形作っているのは複数の単純な波であることを忘れないでください。もしさっきの式を次のように変更して波の数を減らすと、もはや広がっているようには見えなくなります:
( +sin(5 * (cos(1.2) * (x - 5) + sin(1.2) * t)) ) / 10;
一つ一つは単純な波でも、合わさるとどんな複雑な形でも作れます。広がりゆくリーマニアン・スカラー波はいろんな周波数の波が集まってできているとも言えるわけですね。