• CAGD: 第十五章 三角Bézier曲面1


        第十五章 三角Bézier曲面

    在第十章、第十一章和第十二章,我们介绍了双三次Hermite曲面、Bézier曲面和B样条曲面等。无论其构成方式如何,都是定义在矩形参数域上,并且给定的数据信息具有矩形拓扑结构,曲面片具有四条边界。然而,在实际工程应用中,并不是所有给定的数据信息都具备矩形拓扑结构,或者说,并非所有的形体表面都仅能通过使用四边曲面片来表示。那么就需要引入三角曲面片。三角曲面片和四边曲面片除了拓扑结构不同外,并没有其他本质上的区别。在四边曲面中,参数和参数域由矩形区域定义,在三角曲面中,其参数则由重心坐标给出。

    三角域上的多项式曲面首先由de Casteljau1959年引入。以另外的形式,比方Lagrange形式广泛用于有限元分析之中。其最常用的方法是Clough-Tocher方法和五次二十一参数插值方法。二十世纪七十年代,出现了许多三角曲面插值方法,如BBG插值方法、三角Bézier曲面片、多元B样条、Box样条等。三角曲面片技术主要用于非规则形体的建模和散乱数据的数值处理,象实验数据处理、地形图生成当中的无噪声插值、有噪声拟合等等。在三角曲面技术中,应用组为广泛的是三角Bézier曲面片,它是按照定义在规则三角剖分上的二元Bernstein基函数来构造曲面的。本章将主要就这种三角曲面片及其相关技术予以介绍和讨论。

    14.1 重心坐标

    在平面上可以建立各种坐标系,使其几何点与代数有序数组一一对应。当选用笛卡尔坐标系时,便得到了常用的直角坐标。如果选择仿射坐标系,则引入点的重心坐标。

    给定平面上不共线的三个点,那么可构成一三角形,从而平面上任一点可表示为:

    14.1.1

    三元组称为点相应于三角形的重心坐标,满足条件:

    14.1.2

    重心坐标的物理意义是质心,它与直角坐标的关系是:

    可通过三角形的有向面积计算如下:

    (14.1.3)

    其中:

    按其字母顺序,顺时针旋转为正,逆时针旋转为负。

    重心坐标的几何意义除了是有向面积比之外,还描述了过点

    的直线所产生的一些比例关系,如图14.2所示。

    此外,按照重心坐标中分量的符号将平面分成七个区域(图14.3)。特别,三角形三个顶点的重心坐标分别是:

    重心坐标最为重要的性质之一是仿射不变性:如果三角形和点经过仿射变换变成另一个三角形和点,那么点相对于的重心坐标等于点相应于三角形的重心坐标。

    证明 是一仿射变换,则,其中是三阶方阵,是列向量。则:

    这有两层含义,其一是在同一平面进行仿射变换,将三角形变换成;其二是在两张平面间进行仿射变换,将三角形变换成另一张平面内的三角形

    如果我们考虑定义在三角形上的一个二元函数,那么我们面临的问题便是:怎样进行微分运算。此时,并没有几何解释。因此,这里引入方向导数。设是平面内任意两点,那么便定义了平面内一方向。方向的重心坐标满足条件:

    14.1.4

    为了区别于点的重心坐标,方向的重心坐标称为零心坐标。函数关于方向的方向导数则为:

    14.1.5

    因此,今后凡处理用重心坐标表示的函数时,我们用方向导数代替偏导数。当然,方向不必是单位长度。

    14.2 Lagrange插值

    我们知道,一元多项式的最重要的应用之一就是插值。那么,在一三角形上怎样进行多项式插值呢?为此,就需要将一元情形下的节点序列推广到二元情形。

    ,那么点便构成三角形的一个分割,称为节点(图14.4)。在节点处给定数据,我们的目的是构造一次二元多项式,使其满足条件:

    这里,由于,所以给定的数据共有─称之为三角数。

    要求的二元多项式表示如下:

    14.2.1

    其中

    (14.2.2)

    为了证明其正确性,只需验证即可。由此二元多项式构成了三角形次二元多项式空间的基底,称为二元Lagrange基函数。

    插值多项式的计算可采用以下的递推公式:

    (14.2.3)

    那么,

    沿着的边界,插值公式(14.2.1)便退化为一元Lagrange插值公式。当时,便得到线性插值。

    14.3 三角Bézier曲面的定义及性质

    14.3.1 二元Bernstein多项式

     

    三角域上的Bernstein多项式定义如下:

    (14.3.1)

    我们约定,当时,

    由于二元Bernstein多项式是三项式展开式中的各项,因此具有归一性:

    (14.3.2)

    时,。当时,取得最大值。

    14.3.2 三角Bézier曲面的定义与性质

    给定三角域上的分割,及节点处的数值,二元函数:

    (14.3.3)

    称为定义在三角形上的次三角Bézier曲面,其中称为曲面Bézier纵标,有空间点构成的分片线性曲面BL叫做的控制网格或Bézier网。例如,三次三角Bézier曲面的Bézier网如图14.4所示。

    三角Bézier曲面具有以下重要性质:

    1. 凸包性。位于定义它的Bézier网的凸包之中,即:

    2. 角点性质。曲面通过Bézier网的三个角点,即:

    处的切平面为点确定的平面,在处的切平面由点所确定,在处的切平面则由点确定。

    3. 边界性质。若记,则:在边界上是一Bézier曲线,即:

    对于边界也有类似的结果。

    14.4 三角Bézier曲面的升阶

    同张量积Bézier曲面一样,三角Bézier曲面也具有相应的升阶性质。次三角Bézier曲面形式上可表示为次三角Bézier曲面。

    定理14.1 次三角Bézier曲面形式上可表示为次三角Bézier曲面:

    (14.4.1)

    其中:

    (14.4.2)

    证明 由于

    将其代入的表达式中,整理即得。

    式(14.4.2)的几何解释是:Bézier纵标BézierBL在点处的值,即:

    如果我们反复进行升阶,会产生怎样的结果呢?令为第次升阶后的Bézier网,由于每一个都是定义在同一三角域上的分片线性函数,且定义了相同的三角Bézier曲面的顶点由下式确定:

    (14.4.3)

    定理14.2 经过第次升阶后,次三角Bézier曲面形式上可表示为次的三角Bézier曲面:

    (14.4.4)

    其中:

    (14.4.5)

    这里约定当时,组合系数

    证明 时,

    结论成立。

    假设时结论成立,则当时,由升阶公式可知:

    根据归纳法,结论成立。

    当然,也可通过在两边乘以,然后重新排列来证明该定理。

    如果升阶过程无限进行下去,那么Bézier将收敛到三角Bézier曲面片,即有下面的定理。

    定理14.3

    为了证明这一结论,我们引入引理。

    引理14.1 若存在序列,满足条件:

    则:

    证明 由式(14.4.5)可知:

    另一方面,

    即:

    由于,故

    现在,我们证明定理14.3

    由于点在三角形中是稠密的,那么对中任意一点都存在序列,使得:

    由引理14.1,对应的Bézier纵标序列,即:

    14.5 三角Bézier曲面的de Casteljau算法

    类似于张量积Bézier曲面上点的计算,三角Bézier曲面上的点的计算亦可由一系列线性插值来完成,对应的算法称之为de Casteljau算法。

    引理14.2 二元Bernstein基函数满足以下递推公式:

    (14.5.1)

    定理14.4 次三角Bézier曲面可形式上表示为:

    (14.5.2)

    其中:

    (14.5.3)

    时,有。这便是计算三角Bézier曲面上一点值的de Casteljau算法。

    证明 时,结论显然成立。

    时,由基函数的递推公式,可知:

    假设时结论成立,即:

    那么,当

    由归纳法假设,有:

    故结论成立。

    递推公式(14.5.3)的几何解释是:点是将域三角形仿射变换为三角曲面Bézier网上的三角形时,点的仿射像。因此,Bézier曲面片在仿射下不变。这表明,如果用de Casteljau算法计算,然后将其进行仿射变换,与先对Bézier网进行仿射变换,再在新的Bézier网中用de Casteljau算法计算,其结果一致。特别,若令,则有:

    式(14.5.3)中的中间点具有下面的显式表示:

    14.5.4

    证明 时,有:

    假设时结论成立,即:

    则当时,有

    故结论成立。

    14.6 三角Bézier曲面的方向导数

    给定一方向,记二元函数的偏导数的重心坐标表示为,即:

    那么,关于阶方向导数是:

    14.6.1

    证明 时,根据方向导数的定义,有:

    假设时结论成立,则当时,有:

    证毕。

    值得注意的是,尽管,但有意义,即:

    这是一形式表示。

    特别,若,那么

    由此可得三角Bézier曲面方向导数的计算公式。

    定理14.5 二元Bernstein基函数关于方向阶方向导数是:

    14.6.2

    定理14.6 三角Bézier曲面关于方向阶方向导数是:

    14.6.3

    证明 由定理14.5,可知:

    式(14.6.3)的几何解释是:当时,三点,确定了三角Bézier曲面处的切平面。

    推论14.1 14.6.4

    证明

    式(14.6.4)的一个简单几何解释是:当时, ,表示由三点所确定在方向上的斜率。

    式(14.6.3)和(14.6.4)可解释如下:如果按照(14.6.3)计算,则首先对参数de Casteljau递归,求得,然后对de Casteljau递归即可。用(14.6.4)计算,则恰好倒过来,先对de Casteljau递归求得,再对de Casteljau递归。也就是说,求值的递归与求导数的递归可交换,只要分别对级与de Casteljau递归,不管以什么样的次序进行。

    对于域三角形的一条边界,比如和一与其不平行的方向,其相应的阶方向导数为:

    14.6.5

    它仅依赖于与平行的邻近排Bézier纵标。

    将式(14.6.3)和(14.6.4)推广,便可得到混合方向导数的计算公式。令是两个互不平行的方向,则:

    14.6.6

    14.6.7

    这里,表示对级de Casteljau递归,然后对级de Casteljau递归,即:

    在域三角形的顶点处,混合方向导数仅与顶点处的阶子网相关。时,相应的混合方向导数称做"扭矢"。此时,若与域三角形的边平行,则称之为边扭矢。例如,时,则有:

    14.6.8

    其中,

    式(14.6.8)的几何意义如下:

    根据以上的讨论,可得到三角域上Bézier曲面关于三个变元的偏导数计算公式。

    定理14.7 14.6.9

    证明

    特别,当时,则有:

    14.6.10

    14.7 三角Bézier曲面的域变换

    设三角形的三个顶点是,三角形的三个顶点为,关于三角形的重心坐标分别记为,三角形共有边(图14.6),三角形的定向为顺时针。边关于的重心坐标为,关于的重心坐标为。设关于的重心坐标为,那么则有:

    定义在三角形上的三角Bézier曲面在整个平面上有定义,特别,在上亦有定义。我们感兴趣的是用来在定义曲面Bézier纵标。

    上的Bézier纵标为,那么有,即:

    14.7.1

    这里分别为三角形上一点关于的重心坐标。

    由于共有一条边,所以

    14.7.2

    为了确定其余的Bézier纵标,我们考察曲面关于平行边的方向阶方向导数。若记关于的零心坐标分别为,则由式(14.6.5),有:

    14.7.3

    因为,所以根据式(14.7.3),有:

    14.7.4

    因此,两个二元多项式有直到阶相等的导数:

    所以,,故有以下结论。

    定理14.8 定义在三角形上,定义在三角形上,那么,的充分必要条件是:

    14.7.5

    其中,是点关于三角形的重心坐标。该定理给出了由计算的算法:用de Casteljau算法计算处的值时,每一步递推生成的最靠近边的那些中间点便构成了的Bézier网。当然,用同样的方法亦可由求出

    值得注意的是,当在三角形外时,式(14.7.5)是一系列的外插,因而它是不稳定的算法。

    上述讨论的只是两个三角形共有一条边的情形,对于完全独立于的情形,则有下述结论。

    推论14.2 是三角形的顶点关于的重心坐标,那么定义在全平面上的次三角Bézier曲面在上的Bézier纵标为:

    14.7.6

    其中,的含义是对点执行次de Casteljau递归。

    证明中任一点关于两个三角形的重心坐标分别是,那么

    代入三角Bézier曲面,得到:

    所以

    推论14.3 (分割性)点将三角形分成了三个子三角形:(图14.7),那么三角Bézier曲面在这三个子三角形上的Bézier纵标分别是:

    特殊情况下,若位于边上,那么三角Bézier曲面在射线上是一Bézier曲线,其Bézier纵标是以所有平行于的曲面的Bézier纵标所定义的0次、1次、…、Bézier曲线在参数处的值。

    推论14.4 连续性条件)设是定义在三角形上的次三角Bézier曲面,定义在三角形上的次三角Bézier曲面,关于的重心坐标为。那么,在公共参数边界上跨边界连续的充分必要条件是:

    14.7.7

    对于的特殊情况,我们有:

    其几何解释是:图14.8中的三角形对共面,且是域三角形对的仿射像。

    时,有

    上式可改写为:

    这里,是顶点关于三角形的重心坐标。这表明辅助Bézier纵标的存在性保证了两曲面片跨公共边界的连续。

    image

    欢迎访问我的专业知识博客!
    博主:白途思(begtostudy)
    微信/QQ:370566617
    Email:begtostudy#gmail.com
    欢迎访问我的其他博客:我的编程知识博客 我的学术知识博客

  • 相关阅读:
    IDEA maven 项目编译忽略xml文件问题
    Mybatis Generator 路径和实体类要放的路径不一致 导致Could not resolve type alias
    Mybatis 错误:Error parsing Mapper XML. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias
    Spring Security使用报错 No bean named 'springSecurityFilterChain' is defined
    连接mysql失败 Path does not chain with any of the trust anchors
    IPFS客户端导致IDEA SSH登录错误,显示Connection reset
    Electron-从windows向electron拖动文件失败
    【Electron】renderer.js中无法require('electron').remote
    getElementsByNames无法获得对应的svg标签
    [React] setState更新成功不触发渲染,不常见的解决方法
  • 原文地址:https://www.cnblogs.com/begtostudy/p/2233129.html
Copyright © 2020-2023  润新知