DDG课程笔记2-曲面与曲率
这个系列是对CMU离散微分几何课程(CMU CS 15-458/858: Discrete Differential Geometry)的总结和回顾。有了外代数和外微分的基础以后,接下来我们开始讨论曲面和曲率的一些性质。
Surfaces
Parameterized Surface
对于三维空间中的曲面,我们可以把它看成是二维平面通过映射

将
当曲面通过

如果把
为了避免上述这种退化问题同时方便后面的分析和推导这里引入immersed surface的概念:定义
Induced Metric
对于参数化曲面我们总是希望可以在参数平面上研究曲面的在空间中的性质,比如说角度、长度、面积等等。以角度为例,显然参数平面上向量

尽管参数平面上向量的夹角没有什么特殊的意义,但通过微分映射
称
其中
第一基本形式完全描述了曲面的度量性质,我们可以以此计算曲面上的夹角、长度、面积等几何量。
Normals
除了切向量外我们往往还关心曲面的法向量。我们定义高斯映射(Gauss Map)为参数平面上的点到对应单位法向量的映射。显然单位法向量到在单位球面上,因此高斯映射也可以看做是参数平面到单位球上的映射。

我们还可以定义区域内的平均法向:
其中被积项
我们将differential 2-form的运算法则推广到向量,用向量叉乘
即
上式表明对于给定的映射

Discrete Surfaces
本节的最后来讨论一下曲面的离散表示。目前空间曲面最常用的表达形式仍然是三角网格,三角网格的连接关系表示曲面的拓扑信息,而网格顶点的坐标则表达了曲面的几何信息。
如果我们忽略网格的几何信息仅考虑拓扑关系,我们也可以把网格看做是一个流形(manifold)。那么接下来的问题是如何把流形嵌入到空间中?很显然我们可以构造顶点坐标的函数

离散曲面的优势在于曲面的每个面片都是平面,因此我们之前在
Smooth Curvature
Curvature of Curves
接下来介绍曲率相关的知识,首先来考虑光滑曲线的曲率。类似于参数平面,我们可以把曲线看成是直线

显然对于同一条给定的曲线存在不同的参数化方法,其中最重要的一种参数化是使用曲线的弧长作为参数,称为弧长参数化(arc-length parameterized):
对于使用弧长参数化的空间曲线,曲线上的每一点都对应着一个局部坐标系称为Frenet标架(Frenet frame),对应的三个坐标轴分别为切向

可以证明使用弧长参数化时曲线的切向量长度为1,因此三个坐标轴对应的向量均为单位向量。同时三个向量还满足Frenet-Serret公式(Frenet–Serret formulas):
其中
此外我们还可以考虑曲面上的曲线:设曲线上一点的曲面法向为

法曲率代表曲线为了维持在曲面上所具有的曲率,而测地曲率则描述了曲线偏离测地线的程度。

Curvature of Surfaces
在曲线曲率的基础上开始介绍曲面的曲率。回忆Gauss map告诉了我们曲面上任意点的法向,对Gauss map进行微分得到Weingarten map

在此基础上我们定义曲面的法曲率(normal curvature)为法向沿切向
举个简单的例子,考虑参数化柱面

带入法曲率计算公式得到:
这表示柱面在横截面内的曲率为1(圆弧),垂直于截面的曲率为0(没有弯曲),与我们在几何上的认知是一致的。
Principal Curvature
在曲面的切平面上存在两个相互垂直的方向

Shape Operator
注意到
线性映射
即主方向是

此外我们还可以通过shape operator来得到曲面的第二基本形式(second fundamental form)
利用第一基本形式和第二基本形式也可以把法曲率写成:
Gaussian and Mean Curvature
通过主曲率我们可以定义曲面的高斯曲率(Gaussian curvature)
其中,高斯曲率是曲面的内蕴不变量。根据Gauss-Bonnet定理(Gauss-Bonnet theorem)封闭曲面满足:
其中
换言之,不管是对曲面还是对边界进行变形只要不改变曲面的拓扑性质总曲率的积分保持不变。

此外如果已知高斯曲率和平均曲率,还可以反推主曲率:
Discrete Curvature
Scalar Curvatures
最后我们来讨论离散曲面上的曲率。定义顶点
不难发现angle defect表示顶点的「平坦」程度,angle defect越小表示越平坦(平面上angle defect为0)。

考虑离散曲面的Gauss map,我们可以把每个相邻三角形的法向放到原点,此时:
- 方向的顶点都位于单位球上;
- 三角形的转角(dihedral angles)等于单位球法向的内角;
- 顶点的每一个内角等于球面上的转角;
- 顶点的angle defect等于球面上法向包围的面积。

对于凸多面体,对每个顶点的angle defect求和相当于计算单位球的表面积(
离散曲面上的平均曲率则定义为法向夹角的一半乘以边长:

Curvature Normals
在几何处理中更为常用的曲率是曲率向量,即大小等于曲率方向与法向相同的向量。前面已经推导了面积法向(area normal)为
将面积法向

类似地,对平均曲率法向和高斯曲率法向进行积分可以得到离散曲面对应的曲率向量:



Steiner’s Formula
离散曲面上计算曲率的难点在于曲面不是光滑的,在很多地方曲率没有良好的定义。Steiner公式(Steiner’s Formula)提供了一种对离散曲率的近似求法:假设有一个半径为
稍后我们会发现系数

首先考虑高斯曲率,显然扩张后的平面和柱面上高斯曲率为0,只有原来顶点对应的球面上存在非0的曲率。对于球面部分任一点的高斯曲率为
然后考虑平均曲率,扩张后的平面部分平均曲率为0。对于柱面部分,每一点平均曲率为
接下来考虑扩张后的表面积:平面部分保持不变,每个柱面面积为
最后来考虑扩张后的体积:
以上的推导表明多面体的体积、表面积、曲率之间存在微分关系:
同时也表明曲率描述了多面体体积扩张的速率。
Curvature Variations
假设
对这些量求变分可以得到很多有趣的性质。对于封闭离散曲面,其体积可以表示为:
对于曲面上任意顶点
这说明体积对于顶点
接下来考虑曲面的表面积,离散曲面的表面积为:
在三角形上,面积对顶点的梯度为:

将上式带入到曲面表面积公式中,同样对顶点求梯度得到:
详细证明可参见Mean curvature from area。因此
对平均曲率求梯度得到:
根据Schläfli公式(Schläfli formula):
因此,
即平均曲率的变分等于高斯曲率
综合以上可以得到变分关系:
Curvature Flow
最后我们来介绍曲率流(curvature flow)算法对网格进行处理。由于曲率和网格的体积表面积等几何量存在变分关系,因此沿曲率方向移动顶点可以改变网格的几何量,从而实现对网格的降噪(滤波)。曲率流的基本步骤为:
- 计算网格上每个顶点的曲率;
- 沿着曲率向量的方向以一定的速度移动顶点;
- 重复以上步骤直至收敛。
从变分的角度上看,曲率流相当于最小化网格的能量。假设网格的总能量为
在时间域和空间域上进行离散得到:
移项后得到迭代公式:

因此我们只需要选择合适的能量
通过平均曲率流可以使曲面面积在每次迭代过程中不断减少,当算法收敛时得到的曲面为给定边界条件下表面积最小的曲面,称为极小曲面(minimal surface)。在日常生活中,很多建筑的流线型外观就是利用极小曲面来进行设计的。

