Möbius 变换与球的刚体运动
五一期间我写了一个 shadertoy 小动画,演示 Möbius 变换与球的刚体运动之间的关系:
这个动画的名字叫做 Möbius transformation revealed,想法源自 Douglas N. Arnold 和 Jonathan Rogness 于 2007 年发布的 同名视频。这是一个很有名的视频,它表达的核心思想是,扩充复平面 \(\overline{\mathbb{C}}\) 上的 Möbius 变换可以由球在三维空间中的刚体运动给出:
- 我们称一个球 \(S\) 是容许的,如果 \(S\) 的最高点,也就是北极点位于半空间 \(\{z>0\}\) 中。
- 取任何一个可容许的球 \(S\),将 \(\overline{\mathbb{C}}\) 在逆球极投影下对应到 \(S\) 的球面上。
- 对 \(S\) 作刚体变换 (平移和旋转) \(S\to T(S)\),使得 \(T(S)\) 也是一个容许的球,即 \(T(S)\) 的最高点也在半空间 \(\{z>0\}\) 中。
- 将 \(T(S)\) 的表面通过球极投影再映射回 \(\overline{\mathbb{C}}\),我们就得到了一个 \(\overline{\mathbb{C}}\to\overline{\mathbb{C}}\) 的变换,此变换是一个 Möbius 变换,且所有 Möbius 变换都可以通过此种方式得到。
整个过程如下所示:
\[\underbrace{\overline{\mathbb{C}}\xrightarrow{\text{inverse stereographic projection}} S\xrightarrow{\text{rigid motion}} T(S)\xrightarrow{\text{stereographic projection}}\overline{\mathbb{C}}}_{\text{Möbius transformation}}.\]
注: 球极投影使用的北极点始终是球面的最高点。
详细的解释可以见原视频的解释 文章。但是从直观上理解也不难:
\(S\) 在 \(xy\) 平面内的平移给出的是 \(\overline{\mathbb{C}}\) 上的平移。
\(S\) 在 \(z\) 方向上的平移给出的是 \(\overline{\mathbb{C}}\) 上的缩放。
保持 \(S\) 的北极点不动的旋转给出的是 \(\overline{\mathbb{C}}\) 上的旋转。
绕 \(x\) 轴旋转 180 度给出的是 \(\overline{\mathbb{C}}\) 上的逆变换 \(z\to 1/z\)。
以上几种运动方式的复合可以给出可容许球的任何刚体运动,而任何 Möbius 变换都是平移、缩放、旋转、逆变换的复合,所以 Möbius 变换确实与可容许球体的刚体运动是对应的。
反过来对给定的 Möbius 变换 \(M\) 和容许的球 \(S\),当 \(S\) 的初始位置确定以后,给出 \(M\) 的刚体运动 \(T\) 也是唯一确定的。证明见 这个论文。