かけ算第48号|雷文を色の帯にしてトンネルへ巻く × 対数螺旋 × 籠目
回りながら縮む三角形と六角形
雷文のトンネルの帳簿で作った「回りながら縮む正方形」を、正三角形・正五角形・正六角形に広げた。辺を分ける割合 t を 0 に近づけると、頂点の螺旋の傾きは 90° − 180°/n に近づき、頂点がたどる折れ線の長さは、n 匹の虫が追いかけ合って進む道のりに近づく。籠目に敷いて三角形と六角形を逆向きに回すと、どの t でも線がタイルを越えてつながった。六角形だけを敷き詰めると、つながるのは t = 1/2 のときだけだった。
なにか
正 n 角形の各辺を t : (1 − t) に分ける点を結ぶと、少し小さく少し回った正 n 角形ができる。これを繰り返すと入れ子になる。中心を原点に置くと、頂点は 1 段ごとに複素数 μ = (1 − t) + t·e2πi/n を掛けた位置へ移る。1 段で q = |μ| 倍に縮み、φ = arg μ だけ回るので、頂点は r = r₀e−bθ、b = −log q/φ の対数螺旋に乗る。螺旋の傾きは、接線と動径のなす角 arctan(1/b) で測った。
雷文のトンネルでは正方形だけを調べ、傾きは t = 0.5 で 66.19°、t → 0 で 45° だった。そこでの見立て「t によらず 45°」は外れていた。この号では n を替える。
傾きは 90° − 180°/n に近づく
見立ては「t → 0 で螺旋の傾きは 90° − 180°/n(三角形 30°・正方形 45°・六角形 60°)」だった。当たった。t = 0.1 の傾きは三角形 32.83°・正方形 48.12°・五角形 56.88°・六角形 62.58° だった。t を 0.01・0.001・0.0001 と小さくすると、ずれは t に比例して 0 へ向かった。
確かめは 2 経路で行った。1 つは上の閉じた式で、もう 1 つは多角形を実際に作り直し、頂点 1 つの 20 段ぶんの回転と縮みから b を数えるやり方である。n = 3・4・5・6・8 と t = 0.5・0.25・0.1・0.01・0.001 の 25 通りで、b・傾き・1 周の縮み・頂点の鎖の長さが表示の桁まで一致した。
ずれの速さも式にできた。t の 1 次まで展開すると b = tan(π/n)·(1 − t) で、傾きは 90° − 180°/n + (90/π)·sin(2π/n)·t 度になる。t = 0.0001 で測ったずれを t で割ると、三角形 24.813・正方形 28.650・五角形 27.247・六角形 24.811 になる。式の 24.810・28.648・27.246・24.810 と合った。三角形と六角形は sin(2π/n) が同じなので、極限の傾きは違っても近づく速さは同じになる。
t = 1/2 では q = cos(π/n)、φ = π/n になり、1 周で cos(π/n)−2n 倍に縮む。三角形 64 倍・正方形 16 倍・六角形 (4/3)⁶ = 5.619 倍である。t を 0.001 刻みで動かすと、n = 3・4・5・6・8 のどれでも、傾きは t とともに増え、1 周の縮みは減り、頂点の鎖は伸びた。t → 0 の 1 周の縮みは e2π·tan(π/n) で、三角形では約 53,000 倍になる。小さな t ほど 1 段の回転は小さいが、1 周するまでに縮む量は大きい。
頂点の鎖は、虫が走る長さに近づく
n 匹の虫が正 n 角形の角にいて、速さ 1 で次の虫へ向かい続けると、中心で出会う。見立ては「入れ子の頂点の鎖(1 つの頂点が次の段の頂点へ移る線分の長さの和)は、t → 0 で虫の道のり a/(1 − cos(2π/n)) に近づく」だった。当たった。
虫の長さは次のように出る。隣の虫との距離は、追う側が真っすぐ近づく分の 1 と、追われる側が角 2π/n の向きへ逃げる分の cos(2π/n) の差で縮む。距離 a が 0 になるまで a/(1 − cos(2π/n)) の時間がかかり、速さ 1 なので同じ長さを走る。1 辺 1 なら三角形 2/3、正方形 1、六角形 2 である。虫の動きを RK4 で解くと、0.666666・0.999999・1.999999 走った。ln r を回った角に当てはめた b は 1.732051・1.000000・0.577350 で、tan(π/n) と 6 桁まで合った。傾きは 30.000°・45.000°・60.000° である。
入れ子の頂点の鎖は、1 段で t × 辺だけ進み、辺は段ごとに q 倍になるので、和は t/(1 − q) になる。t = 0.001 で三角形 0.66683・正方形 1.00050・六角形 2.00150 で、虫の長さの少し上にある。鎖は t とともに伸びるので、虫の道がいちばん短い。
籠目なら、どの t でも線がつながる
入れ子を敷き詰めに並べると、1 段目の点はタイルの辺の上に乗る。隣のタイルも同じ辺に点を置くが、同じ向きに回すと、片方は辺の端から t、もう片方は反対の端から t の位置になり、2 点は |1 − 2t| 離れる。逆向きに回せば 2 点は重なり、線はタイルを越えてつながる。
見立ては「隣どうしを必ず逆向きにできるのは、どの頂点にも偶数枚のタイルが集まる敷き詰め。正方(4 枚)・三角(6 枚)・籠目(4 枚)はどの t でもつながり、六角(3 枚)は t = 1/2 でしかつながらない」だった。当たった。頂点のまわりをひと回りすると、辺を渡るたびに向きが入れ替わるので、枚数が奇数だと 1 か所で同じ向きどうしが隣る。
確かめは、敷き詰めの一片(正方 169 枚・三角 350 枚・籠目 137 枚・六角 59 枚)で、隣どうしを逆向きに塗る幅優先の塗り分けを試して行った。正方・三角・籠目は塗り分けられ、t = 0.1・0.25・0.4 で共有辺の 2 点のずれは最大 2×10⁻¹⁵ だった。六角は塗り分けに失敗した。六角の 7 枚(中心と周りの 6 枚)では、向きの 2⁷ 通りを総当たりした。ずれの最大のいちばん小さい値は t = 0.1・0.25・0.5 で 0.800・0.500・0.000 になり、|1 − 2t| と一致した。
籠目では三角形と六角形が交互に隣り合うので、三角形を全部一方の向き、六角形を全部逆の向きにすればよい。三角形の螺旋は 30° 寄りで急に縮み、六角形の螺旋は 60° 寄りでゆっくり縮むので、1 枚の図案の中に 2 種類の渦が並ぶ。帳簿の最後に、籠目の t = 0.12 と 0.3、三角の t = 0.15、正方の t = 0.12 を図案の候補として置いた。
どう作ったか
生成器は generators/polygon-whirl.js である。入れ子は、頂点ごとに次の頂点へ t だけ寄せる操作を、辺が 1×10⁻¹³ より短くなるまで繰り返した。虫は刻み 1×10⁻⁴ の RK4 で解き、辺が刻みの 20 倍より短くなったら刻みを辺に合わせて縮めた。敷き詰めは 1 辺 1 のタイルを反時計回りの頂点の列で作り、端点の座標が 10⁻⁶ まで同じ辺を共有辺とした。絵は、段ごとにできる n 個の角の三角形を 1 段おきに塗り、辺が 2 ピクセルほどになったところで止めた。
確かめていないこと。どの頂点にも偶数枚が集まる敷き詰めなら必ず逆向きに塗り分けられるかは、ここで試した 3 つの敷き詰めでしか確かめていない。三角形と正方形が混ざる半正則の敷き詰めは試していない。この絵が目にどう見えるか(渦が回って見えるか)は確かめていない。虫の問題と入れ子の多角形は古くからある題材だが、最初に誰が扱ったかは調べていない。
出典
- 数理
- 入れ子の縮みと回転、傾きの極限と 1 次の係数、虫の走る長さ、鎖の長さ、継ぎ目のずれ |1 − 2t| は自分で導き、数値で確かめた。正方形の場合は雷文を色の帯にしてトンネルへ巻くの帳簿と同じ計算である
- 親戚
- 雷文を色の帯にしてトンネルへ巻く・対数螺旋・籠目・ハニカム
- 生成
- generators/polygon-whirl.js(polygon-whirl.svg 籠目の入れ子・polygon-whirl-book.svg 帳簿)