0%

实用微分几何7(计算)

介绍微分几何基本量的解析公式和(没有曲面解析式时的)数值估计或替代方法。

First Fundamental Form

df=[fufv]3×2df = \begin{bmatrix}\frac{\partial f}{\partial u} & \frac{\partial f}{\partial v}\end{bmatrix}_{3\times 2},于是

I=dfTdf=[EFFG]I=df^Tdf=\begin{bmatrix} E & F \\ F & G \end{bmatrix}

其中E=<fu,fu>,F=<fu,fv>,G=<fv,fv>E=<\frac{\partial f}{\partial u},\frac{\partial f}{\partial u}>,F=<\frac{\partial f}{\partial u},\frac{\partial f}{\partial v}>,G=<\frac{\partial f}{\partial v},\frac{\partial f}{\partial v}>

Numerical Method

由于第一基本形表现了曲面上的距离度量,因此可以用测地距离近似表征这一参量。例如在mesh表面任意抽取两点,都可以通过Fast Marching(略)等方法得到测地距离。通过多次随机抽取两点得到测地距离的分布即可得到第一基本形的替代表征。

Second Fundamental Form

N=fu×fv/fu×fvN = \frac{\partial f}{\partial u} \times \frac{\partial f}{\partial v} / ||\frac{\partial f}{\partial u} \times \frac{\partial f}{\partial v}||

dNdf=[NuNv]3×2dNdf = \begin{bmatrix}\frac{\partial N}{\partial u} & \frac{\partial N}{\partial v}\end{bmatrix}_{3\times 2}

dfTdNdf=[<fu,Nu><fu,Nv><fv,Nu><fv,Nv>]3×2df^TdNdf=\begin{bmatrix}<\frac{\partial f}{\partial u},\frac{\partial N}{\partial u}> & <\frac{\partial f}{\partial u},\frac{\partial N}{\partial v}> \\ <\frac{\partial f}{\partial v},\frac{\partial N}{\partial u}> & <\frac{\partial f}{\partial v},\frac{\partial N}{\partial v}> \end{bmatrix}_{3\times 2}

注意到

<fu,N>=<fv,N>=0<\frac{\partial f}{\partial u},N>=<\frac{\partial f}{\partial v},N>=0

两端求偏导即有

<2fu2,N>=<fu,Nu><\frac{\partial^2 f}{\partial u^2},N>=-<\frac{\partial f}{\partial u},\frac{\partial N}{\partial u}>

<2fv2,N>=<fv,Nv><\frac{\partial^2 f}{\partial v^2},N>=-<\frac{\partial f}{\partial v},\frac{\partial N}{\partial v}>

<2fuv,N>=<fv,Nu>=<fu,Nv><\frac{\partial^2 f}{\partial u\partial v},N>=-<\frac{\partial f}{\partial v},\frac{\partial N}{\partial u}>=-<\frac{\partial f}{\partial u},\frac{\partial N}{\partial v}>

于是

II=dfTdNdf=[LMMN]II=-df^TdNdf=\begin{bmatrix} L & M \\ M & N \end{bmatrix}

其中

L=<2fu2,N>L=<\frac{\partial^2 f}{\partial u^2},N>

M=<2fuv,N>M=<\frac{\partial^2 f}{\partial u\partial v},N>

N=<2fv2,N>N=<\frac{\partial^2 f}{\partial v^2},N>

Shape Operator

直接根据定义有:

S=(dfTdf)1dfTdNdf=I1IIS=(df^Tdf)^{-1}df^TdNdf=I^{-1}II

注:Wiki页面公式有误。

Numerical Method

在有法向量信息时,可以使用Rusinkiewiczs法(可参考另一篇博文)。

Curvatures

由于主曲率是如上形式Shape Operator的特征值,则计算或估计得到Shape Operator后即可得出所有相关曲率。具体公式参考:https://en.wikipedia.org/wiki/Differential_geometry_of_surfaces

欢迎关注我的其它发布渠道