かけ算第43号|カニッツァの三角形 × カテナリー × 木はどこまで高くなれるか
見えない輪郭を弾性曲線で引く
欠けた円の口を少し開くと、描いていない三角形の辺がふくらんで見える。その辺を、曲げにくい棒がとる形(弾性曲線)で予言した。円弧になるのは角と大きさが 1 つの式を満たすときだけで、同じ角でも図形が大きいほど辺は平らになる。長さの項の符号を逆にすると、同じ式が棒の座屈になる。
なにか
欠けた円を 3 つ、口を内に向けて置くと、描いていない三角形が見える(カニッツァの三角形)。口の縁が三角形の辺の向きと揃っていれば、見える辺はまっすぐになる。口の縁を外へ回すと、見える辺は外へふくらむ。どれだけふくらむかを、線を引かずに決める規則がほしい。
Mumford は 1994 年の論文で、物の陰に隠れた輪郭をつなぐ曲線として、曲率の 2 乗と長さの和 ∫(ακ² + β)ds を最小にする曲線を置いた。この曲線は Euler が 1744 年に解いた弾性曲線で、曲げにくい細い棒が両端の向きを決められたときにとる形である。Mumford は、曲率が長さに沿ってでたらめに揺れる輪郭を考えると、弾性曲線がいちばん起こりやすい輪郭になることを示した。この記事では、同じ曲線を主観的な輪郭に当てた。当てたのはこの記事の選択で、原典はカニッツァの三角形を扱っていない。
弾性曲線で引く
口の縁の端どうしを弦とみて、両端で弦に対して ±φ の向きをもつ左右対称の曲線を探した。∫(ακ² + β)ds の停留から 2ακ″ + ακ³ − βκ = 0 が出る。Mumford の式 (8) 2κ″ + κ³ = (R/2)κ と同じ形で、R/2 = β/α にあたる。値は原典の数値例をそのまま使い、長さ 1 で向きの揺れの標準偏差が π/8 になる α = 32/π² と、β = λ = 0.17 を置いた。
形は 2 つの経路で出した。1 つは微分方程式を中央から積み、端の向きと位置が合うまで中央の曲率と長さを直す撃ち込み。もう 1 つは曲線を 400 本の辺の折れ線にして、エネルギーを直接最小にする方法である。弦 d = 4・φ = 20° で、長さは 4.082、ふくらみは 0.3512、2 つの形の隔たりは最大 1.8×10⁻⁸ だった。
円弧になる角は 1 つしかない
円弧の曲率は一定なので κ″ = 0 で、式は κ² = β/α になる。弦 d と端の角 φ の円弧の曲率は 2 sin φ/d だから、円弧が弾性曲線になるのは 4 sin²φ = βd²/α のときだけである。10°・25°・40° でこの β を選んで撃ち込むと、曲率のばらつきは 0 で円弧そのものが出た。
Mumford の値で d = 4 なら、この角は 27.26° になる。式から出した値と、撃ち込みのふくらみが円弧を横切る角を二分法で探した値が一致した。これより浅い角では弾性曲線は円弧より平らで、深い角では円弧より丸い。45° のふくらみは弾性曲線 0.844・円弧 0.828 で、60° では 1.211 と 1.155 だった。
同じ端と向きのカテナリー(鎖を吊るした形を上下に返したもの)は、5° から 60° のどの角でも 3 つの中でいちばんふくらんだ。45° で 0.940、60° で 1.519 になる。
大きい図形ほど平ら
見立ては「角が小さいとき、式は y⁗ = k²y″(k² = β/2α)に近づき、ふくらみは h = φ·tanh(kd/4)/k になる。β が 0 なら円弧と同じ φd/4 で、図形が大きいほど円弧より平らになる」だった。当たった。Mumford の値で k = 0.162、長さの目盛り 1/k は 6.18 になる。φ = 5° で d = 4・16・64 のふくらみは円弧の 0.992・0.880・0.381 倍で、撃ち込みの解と式の差は d = 1〜64 で最大 0.10% だった。
弦が 1/k より長いと、曲がりは両端の近くに集まり、中ほどは直線に近づく。図では口の角を 16° のまま、弦を 4・16・64 にして同じ大きさに描いた。ふくらみは円弧の 0.994・0.878・0.378 倍になった。
長さにご褒美をやると座屈
小さな角の式 2αy⁗ = βy″ は、張力で引いた梁の式 EIy⁗ = Ty″ と同じ形をしている。β を負にすると、長さが長いほどエネルギーが下がり、押す力 P を受けた棒の EIy⁗ = −Py″ になる。見立ては「q = √(−β/2α) で qd = 2π に近づくと、ふくらみは発散する」で、2π は両端の向きを固定した棒の座屈荷重 4π²EI/d² にあたる。木はどこまで高くなれるかの記事で扱った座屈と同じ種類の話である。
これも当たった。φ = 1°・d = 4 で、座屈荷重の 50% ではふくらみ 0.022、95% では 0.173 になった。β = 0 の 0.0175 から、荷重を上げるほど急に伸びる。95% では小さな角の式の 0.149 より撃ち込みの解が大きく、座屈荷重の近くでは角が 1° でも式の線形の近似から外れる。
どう作ったか
生成器は generators/kanizsa.js である。撃ち込みは 4 次のルンゲ・クッタで半分の長さを 2,000 歩に分けて積み、中央の曲率と長さの 2 つをニュートン法で直した。折れ線の側は、辺の向き 400 個と辺の長さを未知数にして、端の位置の制約をラグランジュ乗数で入れ、ニュートン法で解いた。図の弾性曲線は、口の縁の端どうしの弦をその図の d とみて、同じ撃ち込みの解を重ねた。
確かめていないこと。人が見る輪郭が弾性曲線に沿うか、円弧やカテナリーとくらべてどれに近いかは確かめていない。Mumford の長さの単位を視角に結びつける値は原典に無く、「大きい図形ほど平ら」が見える大きさの何度から効くかは分からない。α と β は原典の数値例の値で、人の目から測った値ではない。弾性曲線を主観的な輪郭に当てた研究があるかは調べていない。
出典
- 数理
- D. Mumford, "Elastica and Computer Vision", C. Bajaj 編 Algebraic Geometry and Its Applications, Springer, 1994, pp.491–506。p.491 式 (1) と Euler 1744 の "De curvis elasticis"、p.496 式 (3) と α = 1/2σ²・β = λ で弾性曲線がいちばん起こりやすい輪郭になること、p.498 の数値例 λ = 0.17・σ = π²/128(長さ 1 で θ の標準偏差 π/8)、p.501 式 (8) を開いて確かめた。p.495 の図 4 は柵に絡んだ人物の錯視で、Mumford はこの種の実演を Kanizsa の本(文献 [10])に帰している。円弧になる条件、小さな角の式、座屈との対応は自分で導き、数値で確かめた
- 親戚
- カテナリー・木はどこまで高くなれるか・オオウチ錯視と引き伸ばした市松・カフェウォール錯視
- 生成
- generators/kanizsa.js(kanizsa.svg 口を開いたカニッツァの三角形・kanizsa-book.svg 帳簿)