一种B样条曲面的形状编辑方法与流程

文档序号:15350746发布日期:2018-09-04 23:18阅读:415来源:国知局

本发明涉及图形处理技术领域,尤其涉及一种b样条曲面的形状编辑方法。



背景技术:

b样条曲面是工业领域常用的曲面表示方式,在汽车、飞机等工业产品的外形设计中有广泛应用。一些应用中要求曲面的曲率线分布比较均匀并且曲面的脐点较少,比如在基于四边形玻璃板的复杂建筑表面设计和建造中,生成的平面四边形网格必须沿着曲面的曲率线方向,另一个例子是圆纹样条曲面建模,圆纹曲面片的边界线也是曲面的曲率线,在这类应用中希望曲面模型上的脐点较少,曲率线的分布和走向符合设计意图,这需要一种方法能够优化曲面上的曲率线分布。

虽然目前已有很多工作研究了参数曲面和网格曲面的形状光顺,以及曲面上曲率场的光顺,但是缺乏对b样条曲面上感兴趣区域的曲率线进行编辑的方法。

对b样条曲面的形状进行编辑有各种目标,比如,很多应用中希望曲面的形状比较光顺(也就是看着比较光滑、顺眼),因此很多已有工作针对提高曲面光顺性提出了曲面编辑和优化的方法。

近几年,在建筑曲面设计等应用中,希望所设计的曲面上的曲率线分布比较均匀。曲面上沿任意方向的法曲率均相等的点被称为脐点,在脐点处主方向没有好的定义,因此曲面上脐点附近的曲率线必然不均匀。因此在这类应用中,希望减少曲面上脐点的数量,提高曲面上曲率线的规整程度。虽然改善曲面的光顺性也能在一定程度上提高曲面上曲率线分布的规整程度,但是缺乏为提高曲面上曲率线分布规整程度的针对性的b样条曲面形状编辑方法。



技术实现要素:

本发明的目的在于解决上述现有技术存在的缺陷,提供一种为提高曲面上曲率线分布的规整程度而设计的b样条曲面的形状编辑方法。

一种b样条曲面的形状编辑方法,包括以下步骤:

步骤1:在曲面上绘制曲线,作为目标曲率线;

步骤2:通过极小化一个目标函数来改变曲面的形状,使得用户绘制的曲线成为优化后曲面上的近似曲率线。

进一步地,如上所述的方法,步骤2中所述目标函数为:

其中符号σ表示对l+1条曲线的求和,c是曲线的索引,其中n'(ti)是曲面法矢量对于参数t的一阶导矢、n(ti)是曲面的法矢量、τ(ti)是曲线的切矢量,det表示行列式。

进一步地,如上所述的方法,采用l-bfgs数值优化方法极小化目标函数f。

进一步地,如上所述的方法,所述步骤1绘制曲线的方法包括:任意曲线的绘制和基于已有曲率线的绘制两种方法;

所述任意曲线的绘制为:

用户在参数平面上绘制一个点序列,这个点序列作为控制多边形定义一条平面b样条曲线,该b样条曲线作为参数曲线得到曲面上对应的绘制曲线;

所述基于已有曲率线的绘制包括:

用户选取经过曲面上一点的一条曲率线,在该曲率线上采样得到一个点序列,以这个点序列的参数值作为控制点定义一个平面b样条曲线,对该平面b样条曲线进行光顺,光顺后的平面曲线作为参数曲线得到曲面上对应的曲率线。

进一步地,如上所述的方法,所述光顺的方法包括:

所述平面曲线的光顺方法为极小化目标函数i来实现,该目标函数i是曲线的近似能量函数与曲线的控制点距离惩罚函数的组合。

进一步地,如上所述的方法,所述目标函数i为

fcurve=fcurvefair+ωfcurveclose

其中,fcurvefair是曲线的近似能量函数,定义为

λ1代表近似能量函数第一部分的权重,λ2代表近似能量函数第二部分的权重,b'(t)代表曲线的一阶导矢,b"(t)代表二阶导矢;fcurveclose是曲线控制点的距离惩罚函数,定义为

其中pi是b样条曲线b(t)的控制点,pi*表示曲线最初的控制点,ω是函数fcurveclose的权重。

有益效果:

本发明提供一种b样条曲面的形状优化方法,以用户在曲面上绘制的曲线作为目标曲率线,优化曲面的形状使得用户绘制的曲线成为优化后曲面上的近似曲率线.这个技术除了能编辑曲率线的走向和分布,也能通过改善曲面的曲率线网来改善曲面的光顺性,为依赖曲面上曲率线分布的几何建模应用提供了一种新的设计工具.

附图说明

图1a为优化前的绘制曲线;

图1b为优化后的绘制曲线;

图1c为优化前曲线的参数域;

图1d为优化后曲线的参数域;

图2为曲面上一条曲线;

图3a为模型1初始曲面的曲率线;

图3b为模型1优化后曲面的曲率线;

图3c为模型1曲面脐点;

图3d为模型1初始绘制曲线;

图3e为模型1初始绘制曲线的参数域;

图4a为模型2优化前曲面的曲率线;

图4b为模型2优化后曲面的曲率线;

图4c为模型2初始曲面上的脐点;

图4d为模型2初始绘制曲线;

图4e为模型2优化前的曲线参数域;

图5a为模型3优化前曲面的曲率线;

图5b为模型3优化后曲面的曲率线;

图5c为模型3初始曲面上的脐点;

图5d为模型3初始绘制曲线;

图5e为模型3优化前的曲线参数域;

图5f为模型3优化前曲面的高光线;

图5g为模型3优化后曲面的高光线;

图6a为模型4优化前曲面的曲率线;

图6b为模型4优化后的曲面的曲率线;

图6c为模型4初始曲面上的脐点;

图6d为模型4初始绘制曲线;

图6e为模型4优化前的曲线参数域;

图6f为模型4优化前曲面的高光线;

图6g为模型4优化后曲面的高光线;

图7a为自交曲面模型优化前曲面的曲率线;

图7b为自交曲面模型优化后曲面的曲率线;

图7c为自交曲面模型初始绘制曲线;

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请方法第1步,用户在曲面上绘制出若干条分布规整的曲线,希望所绘曲线成为优化后的曲面上的曲率线。第2步和第3步通过极小化一个目标函数来改变曲面的形状,使得用户绘制的曲线成为优化后的曲面上的近似曲率线。这里的关键是这个目标函数的定义,方法第2步给出了目标函数的定义,利用微分几何的知识构造该目标函数。当该目标函数等于零时,用户绘制的曲线为优化后的曲面上的曲率线,所以需要极小化该目标函数,即让该目标函数尽量接近零。

另外需要说明的是,一个曲面的曲率线变得规整了,曲面的光顺性也会提高。

曲率线驱动的曲面交互形状编辑,即设计算法自动修改曲面的形状,使得修改后的曲面近似具有用户指定的规整的曲率线,改善曲面的曲率线分布,去除曲面上脐点及局部不规则形状特征。本申请考虑当设计曲面是b样条参数曲面的情况,利用曲面的参数化简化问题,s(u,v)表示参数曲面,u,v是其参数。

本申请要解决的问题描述如下:假设曲面s上一条曲线c(t)=s(u(t),v(t))由曲面的u-v参数域内一条2维曲线b(t)=(u(t),v(t))定义,目标是改变曲面s的形状得到曲面s*,使得曲线s*(u(t),v(t))是曲面s*上的近似曲率线,用户通过在曲面的参数域平面内绘制曲线得到设计曲面s上的曲线,然后通过优化算法改变曲面s的形状,这个设定下,目标曲率线在参数域上的参数曲线不变,但是目标曲率线的形状会随着曲面形状的改变而改变。

设给定曲线控制点pi和b样条基函数ni,k(t),定义b样条曲线为:

设给定参数u和v对应节点矢量u=[u0,...,um+p+1]和v=[v0,...,vn+q+1].

定义p×q次的b样条曲面为:

其中,pi,j(i=0,...,m;j=0,...,n)是空间中给定的(m+1)×(n+1)个控制点,构成b样条曲面的控制网格,u-v参数域内一条2维曲线b(t)=(u(t),v(t)),t∈[0,1]对应曲面上的1条3维曲线b(t)=s(u(t),v(t)),t∈[0,1].

本申请的方法的流程可以描述为两个主要步骤:曲线绘制和曲面优化,曲线绘制阶段允许用户在曲面上绘制曲线,作为目标曲率线,曲面优化阶段的目标是通过算法优化设计曲面的形状,使得用户绘制的曲线成为优化后曲面上的近似曲率线。

目标曲率线绘制

用户在设计曲面s上绘制曲线,系统允许绘制多条曲线优化曲面s,使用户绘制的曲线成为优化后曲面上的近似曲率线。在曲面编辑中,一般希望尽量遵循用户的设计意图,使设计曲面的变形尽量小,另一方面,因为本申请采用了局部优化方法,要求给定的初始曲线尽量遵循原始曲面上的曲率线走向,否则可能优化不成功或者曲面的变形太大,从而违背设计初衷。为了指导用户沿曲面曲率线走势进行曲线绘制,系统显示出曲面上一些采样点处的主曲率方向,作为曲线绘制时的参考,系统提供两种目标曲率线的绘制方法:任意曲线的绘制和基于已有曲率线的绘制。

任意曲线的绘制

直接在曲面上绘制曲线已有很多方法,但是计算都比较麻烦,本申请采用一种相对简单的方法,即通过在u-v参数平面上绘制曲线得到曲面s上的曲线.用户在u-v参数平面上绘制一个点序列p0,p1,...,pn,以这个点系列作为控制多边形定义一条2维b样条曲线则曲面s上对应的绘制曲线是b(t)=s(u(t),v(t)).

通常希望绘制的曲面上的曲线接近曲面s的某条曲率线,因此系统计算并显示出曲面s上一些采样点的主曲率方向,同时在曲面的参数域平面上也显示主曲率对应的方向,作为用户绘制曲线时的参考(参见图1)。

基于已有曲率线的绘制

通过鼠标选取当前曲面上的一条曲率线,在该曲率线上采样得到一个点序列,以这个点序列的u-v参数值p0,p1,...,pn作为控制点定义一个b样条曲线b(t),用户在选取一条曲率线时通常会选取一条不光顺的曲率线,然后利用曲线光顺算法改进该曲线的光顺性,把光顺后的曲线作为目标曲率线.利用如上所述任意曲线的绘制方法绘制的曲线也可能不够光顺,对曲线b(t)进行光顺后得到曲线b*(t),则b(t)=s(b*(t))是曲面上的一条光顺的曲线。

对曲线b(t)进行光顺采用常用的近似能量函数极小化的方法,曲线的近似能量函数定义如下:

极小化该目标函数可以使得曲线变得更加光顺,曲线的曲率变化更加平缓,为了避免曲线的变形太大,另外增加曲线控制点的距离误差函数,函数定义为

其中pi是b样条曲线b(t)的控制点,pi*表示曲线最初的控制点.曲率线光顺的极小化目标函数为

优化中的变量是曲线b(t)的所有控制点,目标函数(式(1))是优化变量的2次函数,通过求解式(2)的线性方程组得到优化后的曲线。图1给出了一个曲率线交互选择和光顺的实例。

上述曲线绘制的第一种方法(即任意曲线的绘制)适合当用户期望的曲率线跟当前曲面上的曲率线差别较大的情形,这提供了一种灵活的目标曲率线绘制手段.第二种方法(即基于已有曲率线的绘制)适合曲率线的微调,即当前曲面的曲率线结构基本符合设计目标,只是曲率线的形状不够光顺,通过极小化曲线的能量函数得到光顺的并且跟当前曲面上曲率线近似的目标曲率线.需要强调的是:虽然第一种曲线绘制方式允许用户绘制任意曲线,但是为了后续的曲面优化能够成功和有效,用户绘制的曲线应该遵循曲面已有的曲率线走势,这可以参考曲面及其参数域内的采样点的主曲率方向和采样曲率线,图1给出一个曲率线绘制和优化的实验,实验中曲线优化时采用的系数值为λ1=λ2=0.00001,ω=100。

曲率线驱动的曲面优化

系统允许用户交互绘制多条曲面上的曲线,并通过优化这些曲线成为曲面的曲率线来对曲面的形状进行编辑。通过优化曲面s,使得绘制的参数空间的2维曲线b(t)在曲面s上的曲线b(t)=s(u(t),v(t))成为优化后的曲面的曲率线。

假设沿b(t)的曲面法向量

其中su(u,v)和sv(u,v)分别表示曲面s对参数u和v的偏导(参见图2).

假设t(t)是曲线b(t)上的单位切矢量,根据曲面上曲率线的性质可知如果曲线b(t)是曲面s的曲率线,则曲线b(t)上每一点必须满足如下约束

参数t是弧长参数化,容易证明当采用一般的参数化并且和t(t)不是单位向量时,条件(3)也成立.因此在曲线上计算m+1个采样点,建立如下的极小化目标函数

其中det表示行列式。如果令ui=u(ti),vi=v(ti)则有

n(ti)=su(ui,vi)×sv(ui,vi),

n'(ti)=(suu(ui,vi)u'(ti)+suv(ui,vi)v'(ti))×sv(ui,vi)+su(ui,vi)×(suv(ui,vi)u'(ti)+svv(ui,vi)v'(ti)).

系统允许用户绘制多条曲线,并通过同时优化多条曲线成为曲面的曲率线来修改曲面的形状,这通过求解一个极小化优化问题实现,定义目标函数为

其中符号σ表示对l+1条曲线的求和,c是曲线的索引.采用l-bfgs数值优化方法极小化目标函数(4).算法中需要的导函数都可以解析求出.优化变量为曲面s的控制网格中所有的控制点pi,j.

初始曲面上一般存在脐点以及曲率线不整齐的区域,用户绘制出几条目标曲率线,经过本申请的方法对曲面进行优化后,曲面的曲率线分布得到改善,曲面上的脐点被消除。

图3显示了模型1的实验结果,原始曲面上存在一个不光顺的区域(图3a曲面右侧区域),曲率线的分布在该区域不规则,该区域内存在脐点(图3c),用户在该区域附近沿着曲率线的走向绘制了两条目标曲率线(图3d和图3e);经过曲面优化后,曲面在该区域的曲率线分布明显改善(图3b).

图4显示了模型2的实验结果.该模型存在一个曲率线不规则的区域(图4a右上角区域),该区域存在一个脐点(图4c).用户在该区域附近绘制了多条目标曲率线(图4d和图4e),经过优化后,原曲面上的不规则区域附近的曲率线走向明显变得规整了(图4b).

图5显示了模型3的实验结果.这个模型上存在一个较大的类似椭球面的凸起,附近的曲率线分布比较不规则(图5a),该区域附近存在两个脐点(图5c).用户绘制了多条目标曲线(图5d和图5e),经过优化后得到的曲面上的曲率线规则很多(图5b),曲面上的突起也变得平整了.图5f和图5g是图5a和图5b曲面的高光线.可以看到优化后的曲面上的高光线分布明显变得更加规整.

图6显示了模型4的实验结果.初始曲面上有一个凸起的狭长区域(图6a),曲面在该区域附近的曲率线分布很不规整(图6a),曲面的高光线在这个区域也不规整(图6f).图6d和图6e显示了用户绘制的目标曲线.图6b给出了优化后的曲面的曲率线,图6g给出了优化后的曲面的高光线.可以看到,优化后的曲面上的高光线非常整齐,曲面光顺性显著提高.

图7给出了一个自交曲面模型的实验结果.图7a是优化前的曲面的曲率线分布,图7c是用户绘制的初始曲线。图7b是优化后的曲面的曲率线分布,可以观察到曲率线分布的规整性大大提高。

通过以上发现,曲率线驱动的曲面优化具有两个能力:

1)对曲面局部区域的曲率线分布

和走向进行编辑,消除曲面上的细微不光顺区域(比如图4和图4中的例子);

2)以分布规则的曲率线为目标优化曲面能改善曲面的整体光顺性,消除比较大的不规则区域(比如图5和图6中的例子).另外通过这些实验我们观察到,有些曲面的不规整区域用肉眼比较难以发现,但是曲面的曲率线网能够真实地反映曲面的不规整区域,如图4中的模型.这说明曲面的曲率线分布的规整程度是曲面是否光顺的一个重要的检测指标.

本申请实验的测试平台为intelcorei52.5gcpu,4g内存,1t硬盘的笔记本电脑.对于文中的曲面优化平均耗时为3-5s.实验采用模型的控制点个数为:模型1(160),模型2(72),模型3(72),模型4(92),自交模型(72).

本申请提出一种曲率线驱动的b样条曲面形状修改方法.以用户交互绘制出的曲线为目标,优化曲面的形状使得给定的曲线是变形后的曲面的近似曲率线.这个技术对于改善曲面的曲率线分布,去除曲面上的脐点等应用有重要的价值.

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1