曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第1张图片

曲线

曲线,听起来很简单,看起来也很直观,但是如果我们看一下维基百科上关于曲线的定义:

设 I=[a,b]为一实数区间,即实数集的非空子集,那么曲线c 就是一个连续函数c : I → X 的映像,其中X 为一个拓扑空间。

不禁让人疑惑,为什么要这么抽象的定义呢?为什么不用函数、微积分里面的定义?

的确不太好, 比如

,合理函数,但这只是一个点。再考虑曲线
,它是可微的,但是可能并不如我们想象的光滑?比如 (0,0) 点。

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第2张图片

所以我们给它如同以上的定义。对于曲线我的理解可能就是如同理解曲面一样,正如曲面我们可以理解成是一小块一小块平面贴起来的,曲线也就是一小段一小段的直线。

同时也有正则曲线的定义:

-曲线
是正则的(regular)如果
对任何

再来看以下定义:

这是不同的曲线么? 其实不,它们可以都是 y = x 这条直线。

再看:

同样上面也是可以是单位圆的参数化表示,o(╯□╰)o同一条曲线会有不同的参数化表示,重新映射t,就会得到不同的参数化表示同一条曲线:

这也很容易理解,比如我们开车同样从 A 点开到 B 点,我们可以有不一样的速度,也就是不一样的参数表示:

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第3张图片

同样这也给了我们一些启示,那就是这里的’车速‘可能并不是一个很好的对曲线的描述。因为对于同一条曲线是不同的。

对同一条曲线,无论我们怎样参数化,曲线的长度都是一样的(积分换元法可以简单证明):

那么从

到 t, 曲线的长度是:

同时:

这说明 S(t) 是一个单调递增的函数, 令

为它的反函数,所以我们有:
,那么
就是 弧长参数化曲线(parametrization by Arc Length) :

弧长参数化我们一般写作

, 它的的直观理解就是以单位速度沿着曲线运动:

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第4张图片

沿着曲线单位速度运动的结果就是我们已经某种程度上摆脱掉之前我们说的从A点开车到B,不同的速度造成不同的参数化的影响。

那么当我们沿着曲线单位速度运动,是否我们还能感受到’力‘呢?看一眼上面的曲线,其实是的,这个力并非是由于车加速减速而造成的,而是曲线本身的性质,因为曲线是’弯曲的‘而造成的。

平面曲线

对于

, 我们可以定义它的切向量为:

我们知道

,假设平面上存在基
,那么可以找到
写出:

求导:

在上面的式子中:

再次微分:

上面的式子结合起来:

其中:

  • 是曲线的单位切向量
  • 是曲线的单位法向量,是
    向左转90°,跟它垂直
  • 之间的夹角
  • 是有符号的曲率,它测量随着单位弧长角度的和变化,
    如果我们以单位速度在曲线上行驶,那么
    表明为了保持在曲线上,我们必须转动的方向。或者说:
    ,也可以将
    理解成司机在曲线上保持匀速运动所受的力(牛顿第二定律),当这个曲线是直线的时候
    为0,这是为了防止司机沿切向加速。

上述结论是我们用了一个坐标系统

推导出来的结论,如果我们旋转或者移动这个曲线,我们写下的式子
会改变,但如果没有一开始的坐标系统,可能会很难理解
求导, 所以我们可以选择
作为曲线的坐标系统,这是曲线内蕴(intrinsic)的坐标系统,用这个坐标系统,我们可以用
为基,来表示
求导, 这也就是 Frenet 标架(Frenet Frame)。

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第5张图片

对于曲率的另一个理解当然就是相切圆的导数:

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第6张图片

平面曲线其实是由曲率

唯一确定的,这也是平面曲线的曲线基本定理。

关于曲线还有一种有趣的看法,高斯映射。

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第7张图片

高斯映射将曲线或曲面上每一点映射到单位圆或单位球面上的对应点。

同时也是一个拓扑不变量。关于闭合曲线,我们可以计算它的卷绕数(winding number):

平面上的闭曲线关于某个点的卷绕数,是一个整数,它表示了曲线绕过该点的总次数。

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第8张图片

空间曲线

对于$

为单位长度。

先看一个简单的定理 :

定长 ,

所以可以知道存在

垂直于
,这与平面曲线是一致的,但是因为我们在
, 有两个正交的向量,我们可以很容易得到第三个向量:

所以我们在

中可以选取
作为基,任何向量都可以写成:

经过推导,我们可以写出类似的在Frenet标架中它们的关系:

  • 为副法向量 ,它垂直于切向量和法向量
  • 曲率,在曲面的运动
  • 挠率,离开曲面的运动

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第9张图片

如同平面曲线由

唯一确定的,空间曲线由
完全确定。

Frenet 标架可以推广到更高维的曲线中:

离散曲线

平面曲线

写了这么多理论的东西,但我们讲到计算机中都曲线的时候,比如 Beizer Curve,我们问一下它的 arc length parametrization 都会让人头大。更经常,我们可能是用线段来模拟曲线:

这些线段如果完全按照数学理论来说,在线段的内部其曲率是0,而在交界处交界是

, 这并不是很合理的看法:

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第10张图片

我们需要想办法把上述曲线上的性质想办法挪到离散曲线上,比如下面是 ‘离散高斯映射‘:

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第11张图片

不过值得注意的是在映射中:

  • 线段 -> S1上的顶点
  • 顶点 -> S1上的线段

注意颜色的对应。

内角的概念可以延伸到像星形之类边和边相交的非简单多边形。此时内角和可以表示为180(n-2k)°,其中n为多边形边数,k = 0, 1, 2, 3 ...为绕多边形的边走一圈时,会旋转几个360°,换句话说,360k°表示外角和。例如对于一般的凸多边形和凹多边形,绕多边形的边走一圈时只会旋转一个360°,因此外角和为360°。

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第12张图片

所以会让我们思考,比如上面的

可以用来表示斜率么? 实际上,
更类似斜率的积分:

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第13张图片

我们的斜率应该是

, 针对下面的离散曲线,斜率应该是不同的:

曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第14张图片

空间曲线

空间曲线选择不同的离散和模拟方式,甚至选择不同的标架(Bishop Frame),也会得到不同的结果,比如可能是

那么在实际使用中,有看到过针对平面曲线取离散的三个点来拟合二次函数算曲率的,比如这篇:

Pjer:计算离散点的曲率(附Python, MATLAB代码)​zhuanlan.zhihu.com
曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线_第15张图片

也有见到比如用三个点来圆/球来算曲率的。

还看到过这种:

这就很贴合上面的离散斜率。

至于到底选择什么作为斜率只能说具体问题,具体选择,当它是最适合你的时候就是一个好的曲率。

参考:

  • 大量参考wikipedia
  • Curves

你可能感兴趣的:(曲线积分与曲面积分总结,离散拓扑优化matlab程序)