■[Flash]カッシーニの卵形曲線の描き方

 赤塚不二夫の漫画に「逮捕する~!」と叫びながら、街中で拳銃をぶっ放す、目がつながった警官が登場する。その警官のつながった目の形が「カッシーニの卵形曲線」だ。

(※Flash8のソース:cassini01.zip

「カッシーニ」とゆーと、アメリカが打ち上げた「土星探査機」の名前を思い浮かべるかもしれない。「ジョヴァンニ・ドメニコ・カッシーニ(Giovanni Domenico Cassini:1625~1712年)」は、土星の4つの衛星や、土星の環の隙間を発見した天文学者だ。彼の功績を称えて、土星探査機の名前にしたわけね。

ドーナッツの断面

 土星の環ならぬ、ドーナッツの輪を「MRI」に入れて、その断面を見ると(べつにMRIを使わなくてもよいけれど^^;)、カッシーニの卵形曲線のような形になる。

 で、カッシーニは、なんで、こんなヘンテコな曲線を考えたかというと、同時代には、「アイザック・ニュートン(Isaac Newton:1643~1727年)」がいて、ニュートンは「プリンキピア」を著わし、万有引力の法則を発見した。天体の運行に関しても、2体間の運動法則として、楕円軌道になるってことを証明した。

 ところが、カッシーニは、2体間だけでなく、3体間を考えると、それほど、簡単じゃないぞ……ってことに気がついちゃったわけね。

 たとえば、二連星の周りを回る衛星があったとする。二連星からの距離が遠く離れていれば、衛星は概ね楕円軌道を描くのだけれど、二連星に近づくにつれ、ピーナッツの殻のような、おかしな軌道を描くようになる。

 カッシーニの卵形曲線の中でも、無限(∞)のマーク、8の字を横にしたような形をベルヌーイの「レムニスケートの連珠曲線」と呼ぶ。二連星の衛星の軌道は、二連星の質量や、衛星の質量、運動エネルギーによって変わるけれど、それらをうまく調整すれば……というか、たまたま、二連星の周りを8の字を描いて回る衛星があっても不思議じゃないってことかな。ちなみに、レムニスケートとは、リボンと意味らしい。

 出たな、塩分、糖分、脂肪分、余分三兄弟じゃない、ベルヌーイ兄弟^^; ベルヌーイは10人兄弟で、そのうち8人は数学者だったという。超越曲線や、レムニスケートで歴史に名を残しているのは、ヤコブ・ベルヌーイ(Jakob Bernoulli:1654~1705年)、オイラーが師事した、ヨハン・ベルヌーイ(Johann Bernoulli:1667~1748年)は10人兄弟の末っ子。さらに、ベルヌーイの定理を表した、ダニエル・ベルヌーイ(Daniel Bernoulli:1700~1782年)は、ヨハンの息子というから、もう、誰が誰やら^^;

 さて、よもやま話はこれくらいにして、カッシーニの卵形曲線の数式は、以下のような4次方程式で表される。

カッシーニの卵形曲線の数式

 このグラフを描くには、xを増減したとき、対応する、yの値を求めればよい。つまり「y=ホニャララ?」の形にするわけだが、数学落ちこぼれの爺に、4次方程式を解けと言われても困るので、「Maxima」に助けを求める。

カッシーニ卵形曲線の解

 4次方程式だから、解は4つあるけれど、この際、あまり難しく考えないようにしよう(というか、難しいことはわからない;;)。

 いちおう、カッシーニの卵形曲線が描けるようになると、次に、全体を色のグラデーションで等高線のように表したくなる(爺だけかも><;)。しかし、簡単な図形なら線で結び、その内側を塗りつぶすコマンドがFlashにはあるのだけれど、なんとなく、その方法ではうまくいかない気がする。そこで、爺が考えたのは、じつにいい加減な方法、X軸を対称にして、上のy1と下のy2を線で結んでしまおうというもの。1ピクセル単位で線を引けば、隙間ができず、塗りつぶしたのと同じ結果になるだろう……と。

(※Flash8のソース:cassini02.zip

 少々というか、多分に強引な方法なので、描画が終わるまで、時間がかかるし、重たい><;

 Shadeの「MetaBall」でも遊んでみた^^;

 爺の持っている「Shade6 Basic(廉価版)」では、カメラ位置を変えてのアニメーションは作れるが、オブジェクトを少しずつ動かしてアニメーションさせることは(たぶん)できないので、1コマずつレンダリングして、それをFlashのタイムラインに貼り付けた。力技もいいとこだ><;

 こうして、爺の無意味で非生産的な1日が過ぎていく……^^;