pbrt的实现中,对球体进行了建模,而球的表面是曲面,所以,表示球面就用到了球的曲面参数方程。不仅如此,反走样技术中用到了曲面的其他属性(比如说曲率),所以,我就专门学了曲线和曲面的相关知识,在此做一个总结,复习学到的内容,并且希望能对想要连接曲线和曲面相关知识的读者有所帮助。
由于作者水平所限,文中如果有错误或者没有解释到位的地方,还请读者不吝指正。
本文主要讨论的内容是:可微参数曲线的定义、曲线的曲率、曲线的扰率、正则曲面的定义、第一基本形式、第二基本形式。
可微参数曲线
在实践过程中,我们要处理的大多数曲线都是参数曲线,而且都是可微的,所以,给一个参数曲线的定义不如给一个可微参数曲线的定义。下面是可微参数曲线的定义:
可微参数曲线是一种将域上的开区间内的元素,转换成域内的元素的可微映射,记作
从定义中可以看出,曲线本质上是一种对应关系,这种对应可以看成是一种函数,把一维空间中的元素映射到三维空间中去。那么显示生活中,啥东西是一维的呢?想来想去,只有一个东西是一维的,那就是时间!所以,参数曲线也可以看成是,一个点在三维空间中随着时间运动的轨迹!
来看一个参数曲线的例子——螺旋线
螺旋线的参数方程是,其中和都是标量。
曲线的切向量
曲线在某一点的切线意味着其在当前点的运动方向和速度,对研究曲线来说,切向量非常重要,几乎所有的定理或者公式都有切向量,所以,它是既曲线的定义之后,第二大重要的概念。
切向量的定义是:
如果曲线是可微参数曲线,那么它的一阶导数就是曲线在点出的切向量。
这个很容易理解,在学习微积分的时候,如何理解导数就是瞬时速度(虽然瞬时速度在现实生活中是不存在的),在一小段时间内,小车行驶的距离与这段时间的比值,不断将这段时间缩短,取其极限就成了瞬时速度。把这个概念用到曲线上,曲线的切向量就是这样推导出来的(上图中的就是t点的切向量)。
曲线的弧长
计算曲线的弧长需要用到曲线的切向量,如果曲线在某一点没有切向量,这种曲线我们没法处理,而之前定义的可微参数曲线就解决了这个问题,可微参数曲线保证曲线是处处可导的(有切向量)。
但是光可微还不够,我们还需要一个条件,那就是曲线的一阶导数不为0。这就引出了正则曲线的定义。
如果是可微参数曲线,其一阶导数在整个定义域上处处不为0,我们就说这条曲线是正则曲线。
然后,弧长的计算公式如下:
这里不用来表示是因为这个公式中只有一个变量那就是,而是积分的上限,其余的比如,在这个式子中都不是变量。所以本质上是一个关于积分上限的函数。
我们不妨这么来看,令,则积分等式右边变成了,然后积分之后变成,于是弧长计算公式就变成:
也就是,因为是一个常量,所以整个式子就是一个关于的函数。
还有一点要注意的是,对积分之后,跟没有半毛钱关系,也就是说不能表示成,取的长度会把表达式变成一个完全不同的函数,和不再有什么关系。
曲线的曲率
对一条曲线来说,我们很自然地会去考虑,这条曲线到底有多“曲”?那么,在数学上,怎么表示这个弯曲程度呢?答案是:曲率。
下面是曲率的定义:
令是一条正则参数曲线,其参数为,且参数恰好是曲线的弧长,那么曲线的曲率是,记作。
乍一看,曲率的定义过于苛刻了,因为它要求曲线的参数正好是其弧长,这点似乎很难办到,但是我们在实际的应用过程中,这点还是比较容易办到的,因为:
对于任何正则参数曲线来说,都可以把它化作以弧长为参数的形式。
也就是说如果我有一条曲线,就说是吧,这个不是弧长。我可以找到一条曲线,使得这个正好是的弧长。并且,这个和是同一条曲线!然后,曲率的定义就可以在上应用了,因为它喝是同一条曲线,所以的曲率也就是的曲率。
以弧长为参数的曲线还有一个好处,就是和是垂直的。因为假如我们用弧长计算公式去计算的话,我们得到的结果是,这个正好等于,也就是说正好是1,并且恒等于1。即
成立。那么我们可以得到,对等式两边求导(运用乘积公式)得,化简得
也就是说与是垂直的。
曲率的几何意义
现在我们知道曲线有多“曲”了,它的弯曲程度是,这是一个标量。那么,它的几何意义是什么?
我们可以很直观地想到,如果越大,那么这条曲线在点的附近就会越弯曲。所以,曲率的几何意义就是,当增加一个微小量之后,曲线在垂直于的方向上(也就是方向上)增加了多少。这与我们对弯曲程度的概念是一致的!
曲线的扰率
对曲线来说,曲率是沿着方向弯曲的程度,与垂直,也就是说和共同组成了一个平面。曲率是曲线在这个平面上的变化程度。
那么,如果我的曲线是三维空间中的一条曲线,只有曲率怕是不够的吧?没错,这就引出了另一个概念:扰率。
下面是关于扰率的计算过程:
令曲线是以弧长为参数的正则曲线,,则其曲率为
令,即,是单位,则
由等式1可以推导得到:
显然,是单位向量。那么就有
对式2两边求导可得很明显,和是线性相关的,所以它们的叉积是向量,所以,我们的等式可以化简为
通过观察等式3和等式4我们可以知道,与是垂直的,与是垂直的,在观察等式2就可以得出结论与是线性相关的,也就是说可以表示成
这个就是曲线的扰率!
很复杂的推理过程,比要复杂地多。扰率的几何意义是,在垂直于和形成的平面的方向上,曲线的“弯曲”程度,也就是空间的第三个维度上的变化情况。
就是上图中方向上的变化情况。
正则曲面的定义
同样,从实际应用的角度出发,跟找曲面的意义相比,找正则曲面的意义更大。所以,下面要给出正则曲面的定义,说实话,正则曲面的定义比曲线的定义复杂很多,但是,复杂就不学了吗?
正则曲面的定义如下:
假设有一个的子集,如果对于上的每一点,都可以找到一个邻域(),和一个映射,其中是上的开集,是和的交集,显然,满足如下的条件:
1、是可微的。这就表示的各阶偏导数都存在。
2、是同胚映射。和条件1结合起来,这就意味着有一个逆映射使得,并且是连续的。
3、对每一个,微分运算是一一对应的。
那么,这个子集就是一个正则曲面。
研究研究定义就可以发现,数学上的曲面定义好苛刻啊。最苛刻的地方在于,它必须要有的映射关系,如果我们凭空绘制一个曲面,哪来的这种关系可以对应?更何况这映射还需要满足3个条件!
我们来仔细看看正则曲面的定义。首先,上的一点的邻域是一个球,它和的交集就是的一个子集(注意还不能认为是一个曲面,所以交集就不能认为是一个面片)。然后,的这个子集和有着一一对应的关系。最后,这种对应关系还需要满足1,2,3的条件。如此这般之后,才能被称为是一个正则曲面。
第一基本形式
想要定义第一基本形式,先得定义曲面的切线空间的概念。
下面定义切线空间:
令是一个正则参数曲面,则点处的切线空间是向量和所张成的向量空间,其中,分别是关于,的偏导数。
有了切线空间的定义,我们就能定义曲面的第一基本形式了:
令是正则曲面在点处的向量空间中的一个向量,则曲面的第一基本形式为:,其中符号表示两个向量的内积。
上面这个定义不好理解,我们举个例子说明一下就好了:
假设我们有一个正则曲面,它上面有一条参数曲线,点处的第一基本形式是:
其中,
所以,在点处的第一基本形式是:。通常,我们都把这种样子的东西叫做第一基本形式,而被称为第一基本形式的系数!
注意:虽然有一些资料上说是曲面的第一基本形式,但是这是错误的叫法,曲面根本就没有什么第一基本形式,这只是曲面上的一点的第一基本形式,因为我们完全可以看出,这个式子计算出来的是一个标量,根本就不是曲面上的点!
第一基本形式的作用是计算曲面上曲线的长度,两条曲线交点切向量的夹角,或是某一块曲面片的面积。
第二基本形式
同第一基本形式一样,第二基本形式也不是曲面的,而是曲面上一点的。第二基本形式的几何意义是,曲面在当前这个点上的曲率是多少,也就是曲面在这点上有多“曲”。
第二基本形式的计算方法如下:
令曲面是正则曲面,在点处的标准单位法线为,则曲面在点处的第二基本形式是,其中,是关于的二阶偏导数,依次类推。被称为第二基本形式的系数。
从式子中也可以看出来,这玩意儿就是一个标量而已。所以,我不喜欢把它叫成曲面的第二基本形式,因为这会产生很大的歧义,仿佛这是曲面的表达式似的。
第二基本形式的产生思路是这样子的。前面我们研究曲线的时候,计算了曲线的曲率,有了一个量来表示曲线有多“曲”,那么自然地,我们也会想知道一个曲面有多“曲”,这就引出了第二基本形式。
第二基本形式是曲面上两点之间,法向量方向上的距离,如下图所示:
下面来推导这个第二基本形式。首先,假设曲面的参数形式是,曲面上一点p的坐标是,我们要求图中d的长度:,这个公式非常简单。难的是下面这步:
我们可以把用泰勒多项式展开,得到在点(0,0)附近的曲面的近似多项式曲面,就会得到:
其中是余项。当u和v的值趋近于0的时候,余项可以舍弃掉。
于是,我们得到
将这个式子带入到求的公式中
因为法向量垂直于切平面,所以和的值都是0,可以消去,所以我们得到了上面的式子。把放到括号里去,然后微小变化量我们通常用表示,就得到了第二基本形式
另一种第二基本形式的表示方式
另外一种第二基本形式的表示方式,可以说是一种巧合,因为它没有什么几何意义。我们来看:
因为,对这个式子两边求导我们可以得到
对两边求导可得
这就说明
这就是说
没错,就是这么巧。也就是说
也是第二基本形式。
为啥没意义呢?因为dx可以看成是x的某一个切向量,而dN可以看成是N的切向量(如果N看成是一个单位球的曲面的话,也可以说是高斯映射,当然,这是不正经定义),那么两个切向量的点积,还要求相反数,这就没有啥意义了。当然,这只是我个人的理解,如果读者有更好的理解的话,请留言告诉我,谢谢!
总结
说实话,这些定义都是非常基本的但是要理解这些东西也并不容易,其中的有一些概念可以扩展延伸成更有用的概念,在这里就不整理了,因为,只要这些基本的概念在,就不虚!
参考资料
Differential Geometry of Curves and Surfaces, by do Carmo
Elemetary Diffential Geometry Second Edition, by Andrew Pressley