| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 计算机图形学-曲线和曲面 -> 正文阅读 |
|
[数据结构与算法]计算机图形学-曲线和曲面 |
8.1基本概念 8.2三次样条 8.3Bezier曲线曲面 8.4B样条曲线曲面 8.5有理样条曲线曲面 一、曲线曲面数学描述的发展 弗格森双三次曲面片 (形状控制与连接问题) 孔斯双三次曲面片 (形状控制与连接问题) 样条方法 (解决插值问题,无局部调整的自由度,形状难以预测) Bezier方法 (连接和局部修改问题) B样条方法 (解决局部控制、连接问题,局部控制方便,形态灵活直观) 有理Bezier? 非均匀有理B样条方法 1991 NURBS标准 定义工业产品几何形状的唯一数学方法 二、曲线曲面的表示要求 唯一性 从已有信息得到的图形唯一 几何不变性 形状不随坐标系改变而改变。通常标量函数没有几何不变性,二参数曲线/曲面在某些情况下有。 易于定界 参数法易于定界 统一性 统一表示和处理各种曲线曲面情况(兼容度高) 易于实现光滑连接 几何直观? 三、曲线曲面的表示 关于参数法 特点:更满足形状数学描述要求 点动成线; 具有几何不变性; 通过对参数求导代替斜率,避免斜率无穷大 dy/dx = (dy/dt)/(dx/dt) 几何分量有界:t∈[0,1]; 对方程直接仿射和投影 将自变量和因变量分开,明显的表示参数变化对变量的影响 四、插值与逼近 样条:模线样表法表示和传递自由曲面的形状 样条曲线:由多项式曲线段连接成的曲线,在边界处满足特定的连续条件 样条曲面:用两组正交样条曲线表示 型值点与曲线曲面的拟合:用一组型值点来指定曲线曲面的形状时,形状完全通过给定的型值点列 控制点与曲线曲面的逼近:用一组控制点来指定曲线曲面的形状时,求出的形状不必通过控制点列 (拟合 与 逼近) ? ? 求给定型值点之间曲线上的点称为曲线的插值。 控制/特征多边形:将连接有一定次序控制点的直线序列称为控制多边形或特征多边形,例如有图中的虚线部分。 五、连续性条件 假定参数曲线段pi以参数形式进行描述 参数连续性: 0阶参数连续性,记作Co连续性,是指相邻曲线的对应几何位置连接 1阶参数连续性,记作C1连续性,指代表两个相邻曲线段的方程在相交点处有相同的一阶导数 2阶参数连续性,记作C2连续性,指两个相邻曲线段的方程在相交点处具有相同的一阶和二阶导数 对于C2连续性,交点处的切向量变化率相同,曲线段之间平滑变化。 几何连续性:(相对于参数连续性,只需成比例即可) 0阶几何连续性,记作Go连续性,与0阶参数连续性的定义相同,对应连接 1阶几何连续性,记作G1连续性,指一阶导数在相邻段的交点处成比例 2阶几何连续性,记作G2连续性,指相邻曲线段在交点处其一阶和二阶导数均成比例 六、样条描述 对于给定了控制点位置的样条参数曲线,需要给出对应的样条描述,以唯一确定这条曲线。 对于一条三维的n次样条参数多项式曲线的矩阵: 矩阵形式: ? 其中的T是关于参数t的幂次行向量矩阵(1 x(n+1)),C是系数矩阵((n+1)x 3). 系数矩阵C: C = MsG G是包含样条形式的几何约束条件的(n+1)x 3阶矩阵,Ms是一个(n+1)x(n+1)阶矩阵,又称为基矩阵,将几何约束值转化成多项式系数,提供样条曲线的特征。 最后得到的样条参数多项式曲线的矩阵表达式: P(t) = TMsG 七、三次样条 1)给定n+1个控制点,可得到通过每个点的分段三次多项式曲线 t为参数;t=0对应起点,t=1对应终点。n+1个控制点会生成n条三次样条曲线段 2)自然三次样条 三次参数样条曲线具有C2连续性 ?给定n+1个型值点,现通过这些点列构造一条自然三次参数样条曲线,要求在所有曲线段的公共连接处均具有位置、一阶和二阶导数的连续性,即自然三次样条具有C2连续性。 还需要两个附加条件解方程组。 ?特点:适应于型值点分布比较均匀的场合,不能“局部控制”,即不能仅改变其中的一段而不改变其他部分 3)三次Hermite样条 定义:假定型值点Pk和Pk+1之间的曲线段为P(t),t∈[0,1],给定矢量Pk、Pk+1、Rk和Rk+1,则满足下列条件的三次参数曲线为三次Hermite样条曲线: p(0)? = Pk p(1)? = Pk+1 p'(0)? = Rk p'(1)? = Rk+1 三次Hermite样条曲线的方程为: 其中的Mh是Ms边界约束矩阵的逆矩阵;Gh是曲线型值点及其切矢的矩阵。 ?通常将T?Mh称为Hermite基函数(混合函数,调和函数),各分量为: 只要给定Gh就可以求出P(t) 特点: 可以局部调整,因为每个曲线段仅依赖于端点约束 基于Hermite样条的变化形式:Cardinal样条和Kochanek-Bartels样条 Hermite曲线具有几何不变性 八、Bezier曲线曲面(面向几何的) 也是参数多项式曲线,由一组控制多边形曲线的顶点唯一定义。 控制多边形的各顶点只有第一个和最后一个在曲线上。 要增加某段曲线的阶次,仅需指定另一个中间顶点。 1)定义:对于有?n+1 个控制点的Bezier曲线段: Bernstein基函数具有如下形式:(公式类似二项式定理) ?(假设当k=0,t=0时,tk=1,k!=1) Bezier曲线是阶数比控制点少1的多项式 关于一/二/三阶Bezier曲线的表达式: 一次Bezier曲线(n=1)两个控制点,一次多项式 二次Bezier曲线(n=2)三个控制点,二次多项式 三次Bezier曲线(n=3)四个控制点,三次多项式 ?BENk,n(t)是三次Bezier曲线的基函数,他们各自都是三次曲线,任何三次Bezier曲线都是他们的线性组合。 ? ?2)Bezier曲线的性质 ?1.函数值、导数值和切线 端点和端点函数值 p(0) = P0 p(1) = Pn 所以Bezier曲线总是通过起点和终点。 ?一阶导数 p'(0) = n(P1 - P0) p'(1) = n(Pn - P(n-1)) ?所以Bezier曲线在起点处的切线位于前两个控制点的连线上,终点处的切线位于后两个控制点的连线上,即:起点和终点处的切线方向与起始和终止折线段的切线方向一致。 ?二阶导数 ?Bezier曲线在起始点和终止点处的r阶导数分别取决于起始点或终止点以及最开始和最后的r个控制点 2.对称性 ?保持控制多边形的顶点位置不变,仅仅把它们的顺序颠倒一下,将下标为k的控制点Pk改为下标为n-k的控制点Pn-k时,曲线保持不变,只是走向相反而已。 3.凸包性 ? ? t在0~1变化时,对于任一t值,基函数均为正,各项之和恒为1 ?Bezier曲线各点均落在控制多边形各顶点构成的凸包(包含所有顶点的最小凸多边形)之中 ?Bezier曲线的凸包性保证了曲线随控制点平稳前进而不会振荡 ?4.几何不变性 曲线形状仅与控制多边形的顶点相对位置有关,与坐标系选择无关 5.差变减少性 如果控制多边形是平面图形,平面内任意直线与曲线交点数不多于直线与控制多边形的交点个数;推广至空间成立。 反映的是曲线比控制多边形波动少。 6.控制顶点变化对曲线形状的影响 移动n次Bezier曲线的第i个控制点Pi,会在曲线上参数为t = i/n 的点 P(i/n) 处发生最大影响。因为相应的基函数在此处达到最大值。 3)Bezier曲面 ?双三次曲面(略 P45 46) 性质 控制网格的四个角点正好是Bezier曲面的四个角点 控制网格最外一圈顶点定义Bezier曲面的四条边界,这四条边界均为Bezier曲线 几何不变性、对称性、凸包性等 4)不足 ?控制多边形的顶点个数决定了Bezier曲线的阶数,且当顶点个数较大时,控制多边形对曲线的控制将会减弱; ?不能作局部修改,任何一个控制点位置的变化对整条曲线都有影响。 九、B样条曲线曲面 1)定义 ? ? ?参数: m是曲线的阶参数,(m-1)为B样条曲线的次数,曲线在连接点处具有(m-2)阶连续性 tk是结点值,T=(t0,t1,…tn+m)构成了m-1次B样条函数的节点矢量 结点矢量分为三种类型:均匀的,开放均匀的和非均匀的。B样条曲线的分类同理。 2)均匀周期性B样条曲线 结点沿参数轴均匀等距分布,即tk+1-tk=常数时,所生成的曲线称为均匀B样条曲线 基函数呈周期性。 例: 均匀二次(三阶)B样条曲线 关于起点和终点: ?对于由任意数目的控制点构造的二次均匀周期性B样条曲线来说,曲线的起始点位于头两个控制点之间,终止点位于最后两个控制点之间。 ??对于高次多项式,起点和终点是m-1个控制点的加权平均值点。若某一控制点出现多次,样条曲线会更加接近该点。 /* ********** 曲线的起点和终点: ?均匀二次B样条曲线起点和终点处的导数: *********** */ 三次周期性B样条曲线 取m=4,n=3,节点矢量为:T=(0,1,2,3,4,5,6,7): ? ? ?注意上面两张图矩阵和多项式系数的对应5) 3)开放均匀B样条曲线 在两端的结点值重复m次。可以看成特殊的均匀/非均匀B样条曲线。 具有与bezier相似的特征,当m = n+1 时,开放b样条曲线就是Bezier曲线。 当P0 = Pk时,生成封闭的曲线。 曲线起终点的切线与对应控制点连线平行。 十、B样条曲线性质 1.局部支柱性 B样条函数与Beizer的主要区别:基函数是否分段。 ?基函数是分段函数,在参数变化范围内,每个基函数在tk到tk+m的子区间内函数值不为零,在其余区间内均为零,通常也将该特征称为局部支柱性。 好处: 1)第k段曲线只由m个控制点组成(t ∈ [ tk,tk+1 ),m-1 ≤ k ≤m);要修改曲线,只需修改这m个控制顶点。 ?2)修改控制顶点Pk对曲线的影响是局部的。对于均匀m次B样条曲线,调整一个顶点Pk的位置只影响B样条曲线在区间?[ tk,tk+1 ) 的部分,最多影响与该顶点有关的m段曲线。 2.凸组合性质 凸包性的进阶版: B样条基函数的数值均大于等于0,他保证了B样条曲线的凸包性,B样条曲线必须处在控制多边形形成的凸包之内。同时,曲线的第k段处于m个对应的控制点形成的凸包内,整条B样条曲线位于各凸包的并集内。(较好的跟随性) 对比: ?3.连续性 若一结点矢量中结点均不相同,则m阶(m-1次)B样条曲线在结点处 m-2 阶连续。 B样条曲线的基函数次数与控制顶点个数无关。 存在重结点时:重结点处的连续性降低。结点的重复度为J,该处的连续性降低J阶。 如图:具有三重结点(重复度为2)的三次B样条,结点t?重复度为2,连续性降低2阶,仅保持连续。若重复度为3,曲线退化为离散的控制顶点。? 4.导数 B样条曲线的导数曲线是一条 m-1 阶的B样条曲线。 5.几何不变性 6.差变减少性 十一、B样条曲面 B样条曲线的二维拓展。 ?控制顶点、控制网格(特征网格)、B样条基函数。 B样条曲面具有与B样条曲线相同的局部支柱性、凸包性、连续性、几何不变性等性质。 十二、有理样条曲线/曲面 NURBS曲线曲面 定义 ?有理B样条的表达式 ?取不同的r值得到各种二次曲线。 曲面:公式略 性质:普遍性 局部性 凸包性 可微性 权因子 特点: 为自由型曲线曲面、初等曲线曲面的精确表示与设计提供了公共的数学形式;一个统一的数据库就能够存储这两类形状信息 为了修改曲线曲面的形状,既可以借助调整控制顶点,又可以利用权因子,因而具有较大的灵活性 计算稳定速度快 明确的几何解释和强有力的几何配套工具 几何和透视投影变换不变性 NURBS是非有理B样条形式以及有理与非有理Bezier形式的合适的推广 权因子的不合适应用可能导致很坏的参数化,甚至毁掉随后的曲面结构 某些技术用传统形式比用NURBS工作得更好。例如,曲面与曲面求交时,NURBS方法特别难于处理刚好接触的情况 某些基本算法,例如求反曲线曲面上的点的参数值,存在数值不稳定问题 ------------------------2021-11-30-23:27-------------------------- |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 14:34:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |