对于光滑弧长参数化曲线$ \gamma(s) $
,经典的曲率定义方式有多种。一种是通过二阶导数表示,如$ \kappa=\left< N, \frac{d^{2}}{d s^{2}} \gamma\right>=\left< N, \frac{d}{d s} T\right> $
,其中$ T $
是单位切线,$ N $
是单位法线;另一种是通过角度变化与积分关系定义,即$ \int_{a}^{b} \kappa d s=\varphi(b)-\varphi(a) mod 2 \pi $
,这里$ \varphi $
是从水平线到单位切线$ T $
的角度。
(二)离散曲线的曲率定义
对于多边形曲线,由于在顶点不可二次求导且法线无定义,因此存在多种离散曲率定义方式:
基于角度变化的定义($ \kappa_{i}^{A} $)
定义:对于多边形曲线的顶点$ i
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,设
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,设</font>
<fontstyle="color:rgb(28,31,35);">,设</font> \varphi_{i - 1, i}
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
和
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">和</font>
<fontstyle="color:rgb(28,31,35);">和</font> \varphi_{i, i + 1}
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
是与顶点
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">是与顶点</font>
<fontstyle="color:rgb(28,31,35);">是与顶点</font> i
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
相邻的两条边的方向角,则
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">相邻的两条边的方向角,则</font>
<fontstyle="color:rgb(28,31,35);">相邻的两条边的方向角,则</font> \kappa_{i}^{A}:=\theta_{i}=\varphi_{i, i + 1}-\varphi_{i - 1, i}
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,且
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,且</font>
<fontstyle="color:rgb(28,31,35);">,且</font> \theta_{i} \in (-\pi, \pi) $。
思路:通过计算相邻边方向角的差值来确定顶点处的离散曲率。
基于长度变化和单位角平分线的定义($ \kappa_{i}^{B} $)
定义:设$ L:=\sum_{i = 1}^{n - 1}|\gamma_{i + 1}-\gamma_{i}|
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
为多边形曲线的总长度,对总长度关于顶点位置求偏导,在顶点
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">为多边形曲线的总长度,对总长度关于顶点位置求偏导,在顶点</font>
<fontstyle="color:rgb(28,31,35);">为多边形曲线的总长度,对总长度关于顶点位置求偏导,在顶点</font> i
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
处得到
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">处得到</font>
<fontstyle="color:rgb(28,31,35);">处得到</font> \partial_{y_{i}} L=\frac{\gamma_{i}-\gamma_{i - 1}}{\left|\gamma_{i}-\gamma_{i - 1}\right|}-\frac{\gamma_{i + 1}-\gamma_{i}}{\left|\gamma_{i + 1}-\gamma_{i}\right|}=: T_{i - 1, i}-T_{i, i + 1}
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,如果
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,如果</font>
<fontstyle="color:rgb(28,31,35);">,如果</font> N_{i} \in \mathbb{R}^{2}
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
是顶点处的单位角平分线,则
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">是顶点处的单位角平分线,则</font>
<fontstyle="color:rgb(28,31,35);">是顶点处的单位角平分线,则</font> \kappa_{i}^{B} N_{i}:=2 sin \left(\theta_{i} / 2\right) N_{i} $。
思路:考虑多边形曲线总长度关于顶点位置的偏导数,并结合顶点处的单位角平分线来计算离散曲率。
基于曲线长度变化和不同边偏移方式的定义($ \kappa_{i}^{C} $)
定义:将多边形曲线分成单个边,分别沿各自的法向方向平移$ \varepsilon
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,然后通过不同方式闭合边之间的间隙。用直线闭合时,
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,然后通过不同方式闭合边之间的间隙。用直线闭合时,</font>
<fontstyle="color:rgb(28,31,35);">,然后通过不同方式闭合边之间的间隙。用直线闭合时,</font> length {B}=length(\gamma)-\varepsilon \sum{i = 2}^{n - 1} 2 sin \left(\theta_{i} / 2\right)
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,对应的离散曲率为
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,对应的离散曲率为</font>
<fontstyle="color:rgb(28,31,35);">,对应的离散曲率为</font> \kappa_{i}^{B}
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
;用延长边直到相交闭合时,
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">;用延长边直到相交闭合时,</font>
<fontstyle="color:rgb(28,31,35);">;用延长边直到相交闭合时,</font> length {C}=length(\gamma)-\varepsilon \sum{i = 2}^{n - 1} 2 tan \left(\theta_{i} / 2\right)
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,对应的离散曲率为
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,对应的离散曲率为</font>
<fontstyle="color:rgb(28,31,35);">,对应的离散曲率为</font> \kappa_{i}^{C}:=2 tan \left(\theta_{i} / 2\right) $。
定义:对于多边形曲线的顶点$ i
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,设
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,设</font>
<fontstyle="color:rgb(28,31,35);">,设</font> w_{i}:=| \gamma_{i + 1}-\gamma_{i - 1} |
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,则
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,则</font>
<fontstyle="color:rgb(28,31,35);">,则</font> \kappa_{i}^{D}:=1 / R_{i}=2 sin \left(\theta_{i}\right) / w_{i}
<
f
o
n
t
s
t
y
l
e
=
"
c
o
l
o
r
:
r
g
b
(
28
,
31
,
35
)
;
"
>
,其中
<
/
f
o
n
t
>
<font style="color:rgb(28, 31, 35);">,其中</font>
<fontstyle="color:rgb(28,31,35);">,其中</font> R_{i} $是外接圆半径。
对于$ n = 2 $得到cotan拉普拉斯算子。线性插值考虑了更多的几何信息,通过对-cochains over - dimensional simplices进行插值,使得定义的拉普拉斯算子在某些性质上更接近光滑情形。 不同内积选择各有优劣,需要根据是否满足如最大原理(确保热流等行为正常)、线性函数在核中(对于平坦域,有助于定义重心坐标)等性质来选择。
五、离散可积系统
(一)参数化曲面理论回顾
以用鱼网丝袜包裹表面的问题为例,它对应一种特殊的平铺,其在无穷小处是弱切比雪夫网。对于特殊的K - 表面(常高斯曲率$ K = -1 $
),可得到渐近参数化和正弦 - 戈登方程。