## 几何的三种语言
### 显式表达 (Explicit Representation)
最直白的形式。一个变量直接写成其他变量的函数——谁是因、谁是果一目了然。
比如单位圆的上半部分,用显式表达就是:
$y = \sqrt{1 - x^2}$
你给我一个 $x$,我立马还你一个 $y$。没得商量,也没有任何歧义。变量之间的关系被直接揪了出来,摆在明面上。
但这种干净利落是要付出代价的。你没法用单独一个显式函数来写出完整的圆——它会裂成两段:
$y = \sqrt{1 - x^2} \quad \text{和} \quad y = -\sqrt{1 - x^2}$
这就是显式表达最大的硬伤:必须让一个变量给其他变量“当小弟”(服从其他变量),但几何图形偏偏不吃这一套。在圆的眼里,$x$ 和 $y$ 是平起平坐的;非要定个尊卑主次,只会把图形硬生生劈成两半。
---
### 隐式表达 (Implicit Representation)
隐式方程压根不去解某个具体的变量,而是把所有变量都塞进同一个条件里管着。谁也不用伺候谁——大家地位平等。它们之间的关系藏在方程里,而不是被单独剥离出来。
整个单位圆的隐式表达:
$x^2 + y^2 = 1$
上半圆和下半圆同时老老实实待在这里。这个方程认得完整的圆,根本不用站队选哪一半。之所以叫“隐式”,并不是说方程有多难懂,而是因为变量之间的关系被“捂”在了限制条件里,没有被拆解成因和果。
#### 隐式世界里的维度计算
你需要从所处空间的维度开始做减法。每多一个方程,就干掉一个自由度:
$\text{图形维度} = \text{空间维度} - \text{方程数量}$
在二维空间($\mathbb{R}^2$)里,一个方程能留下出一条一维曲线。在三维空间($\mathbb{R}^3$)里,一个方程能刻画出一个二维曲面;两个方程就能把它压缩成一条一维曲线;三个方程直接就把一个点死死钉住了。一句话,约束条件做的就是减法。
---
### 参数化表达 (Parametric Representation)
参数化表达既不管约束条件,也不去解方程,而是从零开始,把一个简单的定义域投射到空间里,直接把图形“画”出来。你需要引入一个自由参数 $t$,让它顺着走,把整个图形扫出来。
单位圆的参数化表达:
$(\cos t, \sin t), \quad t \in [0, 2\pi)$
不需要过滤什么,也不会断裂成几块。一个干干净净的映射,就把一整个圆完完整整地变了出来。
#### 参数世界里的维度计算
这回你要从零开始做加法。每多一个参数,就贡献一个维度:
$\text{图形维度} = \text{参数数量}$
一个参数造出一条曲线。两个参数造出一个曲面。三个参数造出一个立体图形。参数做的就是加法。
在 $n$ 维空间($\mathbb{R}^n$)里,一个 $k$ 维图形需要 $k$ 个参数,或者 $n - k$ 个隐式方程。这两者加起来永远等于 $n$ —— 这其实就是穿上了几何外衣的“秩-零化度定理”。
#### 参数化不是唯一的
同一个圆,你爱怎么参数化就怎么参数化,办法有无数种:
$\mathbf{r}_1(t) = (\cos t, \sin t), \quad t \in [0, 2\pi)$
$\mathbf{r}_2(t) = (\cos 2t, \sin 2t), \quad t \in [0, \pi)$
$\mathbf{r}_3(t) = (\cos(-t), \sin(-t)), \quad t \in [0, 2\pi)$
- $\mathbf{r}_1$ 是逆时针走。
- $\mathbf{r}_2$ 跑得快了一倍。
- $\mathbf{r}_3$ 则是顺时针走。
虽然走法千差万别(速度、方向、节奏都不一样),但踩出来的路完全是同一条。参数化其实就是强加给图形的一套坐标系,图形本身好端端地在那儿,怎么去描述它完全是人为主观挑的。
这在实际应用里影响很大:
- **在计算机图形学里**,两个美术师可以用不同的 UV 贴图给同一张脸做参数化,结果就是哪怕模型一模一样,贴图拉伸的效果也截然不同。
- **在物理学里**,换个参数化方式其实只是换了块表计时,运动轨迹并没有变。
---
### 三种表达方式的对比
|**特征**|**显式表达**|**隐式表达**|**参数化表达**|
|---|---|---|---|
|**核心思路**|把一个变量写成其他变量的解|所有变量受同一个条件约束|引入自由参数映射到空间里|
|**操作方向**|提取|过滤|构造|
|**单位圆例子**|$y = \pm\sqrt{1-x^2}$ (两半)|$x^2 + y^2 = 1$ (一个方程)|$(\cos t, \sin t)$ (一个映射)|
|**维度计算**|做减法(和隐式一样)|从空间维度里做减法|从零开始做加法|
|**处理完整图形**|常常断裂成几个分支|自然包含整个图形|自然包含整个图形|
|**唯一性**|不唯一(会遇到同样的断裂问题)|基本唯一(只差些代数变形)|极度不唯一(同个图形有无数种参数化方式)|
|**最适合用来**|算简单的局部关系|描述这图形到底是个什么东西|顺着计算、做动画、画轨迹|
|**弱点**|遇到对称图形就容易出问题|很难用来取样或者遍历|夹带了图形本身根本不在乎的冗余信息|
这三种表达方式不是在打擂台争高低,它们更像是同一门语言的三种方言。显式算起来最直接,但也最容易掉链子。隐式能把图形的本体说得清清楚楚,但你想顺着它走却很难。参数化最会讲故事,但对着同一个东西,它能讲出无数个不同的版本。
---
### 参数到底算不算加了一个维度?
这问题问到点子上了。答案取决于 $t$ 到底只是个标签,还是真实存在的东西。
当 $t$ 用来给单位圆做参数化时,它纯粹是为了方便记账——也就是为了能在二维图形上走动而硬造出来的一维空间。圆本身压根就没有关于 $t$ 的记忆。
但在狭义相对论里,粒子在空间里的运动轨迹是一条三维曲线,可它的物理本体其实是四维时空 $(x, y, z, t)$ 里的世界线。这时候,时间就不再是个打酱油的参数了,而是直接晋升成了空间里货真价实的第四维。接着,固有时间 $\tau$ 才会用来给这条世界线做参数化。
当参数带上了独立的物理或几何现实意义时,它就成了一个维度——也就是说,当你顺着这个参数往前走时,空间本身也会跟着发生变化。
> 圆不需要 $t$ 就能存在。但很显然,宇宙需要时间。