trochoid.jpg


トロコイドで作る海の波

 「消波ブロックのモデリング」では、海の波をsin波でごまかしたのですが、もう少し、本物の海の波に近づけてみたいと思います。
 一口に「海の波」と言っても、色々な波がある(浜辺で波頭が崩れ始めた波、深いところの波、浅いところの波、等々)様で、しかも、実際の波はそれらいくつかの合成だったりして、なかなか難しいです。でも、今回作ろうとしている波は、トロコイドと呼ばれる曲線だということがわかりました。

 下図のように半径Rの円と直線を定義して、直線に沿って半径R円を滑らせずに転がします。

troch1.png

 半径R円が一回転すると、2×π×Rだけ進みます。この時、半径Rの円と一緒に転がる半径rの円を考え、半径r円の円周上の点Aが通る軌跡をトロコイドと呼びます。
 定義は簡単ですが、手で軌跡を描こうとすると骨ですので、スクリプト(trochoid_2d.xitr)で描かせてみます。

troch2.png

 点Aは円周上の点であるため、単に上下に振動しているだけではなく、円が転がるのに応じて、図の左右方向にも動き、軌跡は複雑な形になります。
 sin波との違いは、波の山に当たる部分の幅が狭く鋭い、谷に当たる部分の幅が広くなだらかなことです。波の特徴は、波長が2×π×R、波高が2×rとなります。

 実は、この円の動きなんですが、実際の海の波を作り出している水の粒子(分子がいくつか塊になったイメージ?)も、同じ様な円運動をするらしいです。ただし、水粒子の運動は、円が転がるように動いているのではなく、円の中心座標は動かずに、その場で円運動しているイメージ。
 上のトロコイドを、例えば左から右方向へ進行させた場合、波の1周期分が通過すると、水粒子は円周上を一回転します。



 水に浮いている物体(沖に浮かぶブイや、釣りの浮き、等々)も、同じ様に円運動しているらしいので、機会があったら観察してみてください。

テトラポッドの配置

 さて、波打ち際には消波ブロック、ということで、「消波ブロックのモデリング」で作ったテトラポッドを置いてみます。前回は無造作(ランダム)に置いてみたので、今回は規則的に配置してみました。
 基本的には、「球面の細密充填」というやつをヒントにしてアレンジしていますが、もう少し頭を整理して、単純に「正四面体を隙間なく並べた」形にすればよかったのかも??段々になるようにして、奥の方の、見えないであろう場所にはテトラポッドを配置せず、物体数の削減(→計算時間の短縮)を実現しています。

 テトラポッドを規則的に並べたことと、波を少し回転させて、斜めにぶつけていることで、消波ブロックに波が打ち寄せている感じが表現できているかと思いますので、そのあたりにも注目して見てください。


完成データ

 完成したデータをリンクしておきます。

1) trochoid.xitr
tetrapod_concrete.jpg
2) trochoid_2d.xitr

 1)で波が打ち寄せるテトラポッドのアニメーションデータを生成します。JPEGファイルは、「消波ブロックのモデリング」で使ったのと同じ、コンクリートの凹凸マッピングデータです。2)はトロコイドの説明に使った図と動画を作図するスクリプトです。



 テトラポッドは正四面体の4頂点を足の先端にしていますが、先端部分は有限の大きさを持っています。今回、正四面体を隙間なく配置したことで、隣り合う正四面体の頂点が同じポイントに配置されているため、よく見ると、足の先端部分がめり込んでいます。規則的配置なので、めり込まないように離すこともできたでしょうが、逆に、めり込んでいた方が安定感があったので、こちらを採用しています。


home

download

gallery