パップス・チェーン(2)実践
前稿の内容を踏まえたものを wonderfl に投稿しました。
Pappus Chain (advanced, static) – wonderfl build flash online
これは静止版。
パップス・チェーン(1)実践
前稿の内容を踏まえたものを wonderfl に投稿しました。
Pappus Chain (basic, static) – wonderfl build flash online
これは静止版。
アポロニウスのガスケット(2)
ところでアポロニウスのガスケットですが、例えば wikipedia 英語版の当該項目などでは右のような図形と紹介されています。
前回、wonderfl に投稿したコードは、この図形でいえば、その中心部分にできる極めて小さな三角形の隙間を充填した円群でした。
今回は、右のような円充填されたアポロニウスのガスケットはどのようにしたら描けるのか、という話。
つまり、3つの正接円とその外接円で作られる鎌形の隙間を充填する円の中心座標と半径はどのようにして求めるのか、ということです。
アポロニウスのガスケット(1)
アポロニウスのガスケット(もしくはアポロニウスの網)という図形があります。
例えば Apollonian Gasket(Wolfram Mathworld)とか。
これは古代ギリシアの数学者であるペルガのアポロニウスに由来するものとのこと。見てのとおり、円を敷き詰めたものですが、これはデカルトの円定理を使えば簡単に描くことができます。
ソディの円、あるいは、デカルトの円定理
以下の条件を満たした3つの円A、B、C があるとします。
このとき、円A、B、C すべてに1点で接する円Dの半径を求める計算式があるという。
その計算には「曲率(円の半径の逆数)」というものを使います。
円Aの曲率を kA、円Bの曲率を kB、円Cの曲率を kC、円Dの曲率を kD としたとき、以下の計算式が成り立つとのこと。
(kA + kB + kC + kD)^2 = 2 * (kA^2 + kB^2 + kC^2 + kD^2)
この式を変形すると kD は以下のように導かれるらしいです。
kD = kA + kB + kC ± 2 * √(kA*kB + kB*kC + kC*kA)
この kD の逆数が円Dの半径になるわけです。
ところでこの式の右辺には ± が含まれています。ってことは値が2つ得られるということで、それはつまり円Dは2つあるわけです。
ひとつは3つの円A、B、Cが作る隙間の内側に配置される円。もうひとつは3つの円A、B、Cを取り囲むように配置される円。
以後、前者を内接円(円D)、後者を外接円(円E)と呼ぶことにします。
この計算式はフレデリック・ソディというイギリスの化学者が1937年にネイチャーに発表した「ソディの6球連鎖」の中にある公式で「ソディの円(soddy circles)」あるいは「ソディの公式」と呼ばれるものだそうです。