跳到正文
Carol's Blog
返回

曲面参数化概述

前言

对于如何确定本篇文章的内容涵盖范围这个问题,我想了很久,最终打算从最基本的什么是形状(shape) 这个问题谈起。

形状的本质

在拓扑相关的理论中,形状是指n−1n-1维流形(manifold)在nn维流形中的嵌套。

流形是连续的,详细的定义也较为复杂,可以从以下两点来辅助理解流形的概念:

  1. nn 维流形的局部与 Rn\mathbb R^n 等价,例如:曲面(二维流形)的局部是二维平面。
  2. 对流形进行网格剖分,得到的离散流形除去边缘边之外,其他边有且仅有两个面与之相邻。

所以我们可以认为,在 Rn\mathbb R^n 或更高维欧式空间中观测不同 n−1n-1维流形的嵌套,就是在观测不同的形状。


更严谨的,对于一个向量函数,可以表达为 f:Rn↦Rmf: \mathbb {R}^n \mapsto \mathbb {R}^m.

我们令 x⃗=(x1, …, xn)T∈Rn\vec x = \left( x_1,\, \dots,\, x_n \right)^T \in \mathbb R^n, y⃗=(y1, …, ym)T∈Rm\vec y = \left(y_1,\, \dots,\, y_m \right)^T \in \mathbb R^m,故:

y⃗=f(x⃗)  ⟹  {y1=f1(x1, …, xn)yi=fi(x1, …, xn)ym=fm(x1, …, xn)\vec y = f(\vec x) \implies \begin{cases} y_1 = f_1(x_1, \, \dots,\, x_n) \\[2ex] y_i = f_i(x_1, \, \dots,\, x_n) \\[2ex] y_m = f_m(x_1, \, \dots,\, x_n) \end{cases}

假设 ff 是可微的,在自变量任意一点的邻域中,我们有(一阶泰勒展开):

{Δy1=∂f1∂x1Δx1+⋯+∂f1∂xjΔxj+⋯+∂f1∂xnΔxnΔyi=∂fi∂x1Δx1+⋯+∂fi∂xjΔxj+⋯+∂fi∂xnΔxnΔy1=∂fm∂x1Δx1+⋯+∂fm∂xjΔxj+⋯+∂fm∂xnΔxn\begin{cases} \Delta y_1 = \frac{\partial f_1}{\partial x_1} \Delta x_1 + \dots + \frac{\partial f_1}{\partial x_j} \Delta x_j + \dots + \frac{\partial f_1}{\partial x_n} \Delta x_n \\[2ex] \Delta y_i = \frac{\partial f_i}{\partial x_1} \Delta x_1 + \dots + \frac{\partial f_i}{\partial x_j} \Delta x_j + \dots + \frac{\partial f_i}{\partial x_n} \Delta x_n \\[2ex] \Delta y_1 = \frac{\partial f_m}{\partial x_1} \Delta x_1 + \dots + \frac{\partial f_m}{\partial x_j} \Delta x_j + \dots + \frac{\partial f_m}{\partial x_n} \Delta x_n \end{cases}

写成矩阵形式

(Δy1…Δyi…Δym)=(∂f1∂x1…∂f1∂xj…∂f1∂xn……………∂fi∂x1…∂fi∂xj…∂fi∂xn……………∂fm∂x1…∂fm∂xj…∂fm∂xn)(Δx1…Δxj…Δxn)\begin{pmatrix} \Delta y_1 \\[2ex] \dots \\[2ex] \Delta y_i \\[2ex] \dots \\[2ex] \Delta y_m \end{pmatrix} = \begin{pmatrix} \frac{\partial f_1}{\partial x_1} & \dots & \frac{\partial f_1}{\partial x_j} & \dots & \frac{\partial f_1}{\partial x_n} \\[2ex] \dots & \dots & \dots & \dots & \dots \\[2ex] \frac{\partial f_i}{\partial x_1} & \dots & \frac{\partial f_i}{\partial x_j} & \dots & \frac{\partial f_i}{\partial x_n} \\[2ex] \dots & \dots & \dots & \dots & \dots \\[2ex] \frac{\partial f_m}{\partial x_1} & \dots & \frac{\partial f_m}{\partial x_j} & \dots & \frac{\partial f_m}{\partial x_n} \end{pmatrix} \begin{pmatrix} \Delta x_1 \\[2ex] \dots \\[2ex] \Delta x_j \\[2ex] \dots \\[2ex] \Delta x_n \\[2ex] \end{pmatrix}

中间的系数矩阵就是m×nm \times n的雅克比(Jacobian)矩阵,简化写作:

Δy⃗=Jm×n Δx⃗\Delta \vec y = \mathbf J_{m\times n} \,\Delta \vec x

观察映射ff的雅可比矩阵:

对不同 nn 和 mm,Δy⃗=Jm×n Δx⃗\Delta \vec y = \mathbf J_{m \times n} \, \Delta \vec x 可以表述不同含义,总体上:

值得注意的是,y⃗=f(x⃗)\vec y = f(\vec x) 在局部等价于 Δy⃗=Jm×n Δx⃗\Delta \vec y = \mathbf J_{m \times n} \, \Delta \vec {x},而后者可以表述线性变换,前者通过与后者局部等价,可以表述非线性变换。

特别的:

mmnnpresents
11数到数的映射
21平面上的曲线
12二元函数;灰度图;二维流形向一维空间的投影
22线性变换:旋转、缩放、剪切

二维流形

对形状有更深的理解之后,我们再来讨论二维流形。

为什么是二维流形?

因为人类只能在三维空间中去观察,故能直接观察到的最复杂的形状就是二维流形在三维空间中的嵌套,故着重研究二维流形是有意义的。

并不是所有图形都是流形,但是非流形都可以通过局部流形的拼接表述出来,所以我们只关注流形的特性。


分享这篇文章:

分享到微信

微信对普通网页没有开放通用直连分享协议。更稳妥的方式是复制链接、扫码打开,或在支持的设备上调用系统分享。

上一篇
Mesh Deformation Transfer
下一篇
研究生生活开端