公开/公告号CN104318621A
专利类型发明专利
公开/公告日2015-01-28
原文格式PDF
申请/专利号CN201410572379.3
申请日2014-10-23
分类号G06T17/30(20060101);
代理机构31272 上海申新律师事务所;
代理人朱俊跃
地址 200011 上海市黄浦区西藏南路1688号
入库时间 2023-12-17 04:23:20
法律状态公告日
法律状态信息
法律状态
2017-12-19
授权
授权
2015-02-25
实质审查的生效 IPC(主分类):G06T17/30 申请日:20141023
实质审查的生效
2015-01-28
公开
公开
技术领域
本发明涉及船体设计技术领域,尤其涉及一种基于非均匀有理B样条曲 面插值的船体曲面重构方法。
背景技术
目前,重构船体曲面的方法主要有孔斯(Coons)曲面、蒙皮曲面和插 值曲面方法。
孔斯曲面方法采用超限插值法构造满足给定边界和跨界切矢条件的曲 面,使构造出来的曲面片光滑拼合。方法简洁、易于实现,且适应各种船型。 但是,要得到比较光顺的船体曲面,必须对线框模型进行仔细处理和光顺, 而且生成的曲面片太多(几十至几百块),曲面片之间也会有缝隙,这给进一 步交互修改船体、生成光顺船体曲面带来困难。
采用蒙皮曲面方法时需先在关键位置处布置若干条描述曲面形状的截面 曲线,然后生成一张通过这些曲线的曲面。这种方法直观、易于实现,生成 的曲面片少(几块),但是对于复杂船型很难实现。
插值曲面方法采用插值法构造,通过给定型值点或点云数据的曲面,常 用非均匀有理B样条(NURBS)曲面片插值或三角曲面片插值等。这种方法 需对型值点进行分块,对各分块的型值点分别进行插值,得到分片插值曲面, 然后采用曲面拼接技术构造复杂曲面。但是,该方法生成的曲面片太多(几 十至几百块),而且曲面片之间会有缝隙。对于船型设计来说,常常需对船体 曲面进行修改以满足设计要求,显然,太多的曲面片使得交互修改很困难, 而且工作量大。
发明内容
针对现有的重构船体曲面方法存在的上述问题,现提供一种旨在实现了 用较少的曲面片(几块至十几块)重构复杂无缝隙船体曲面的基于非均匀有 理B样条曲面插值的船体曲面重构方法。
具体技术方案如下:
基于非均匀有理B样条曲面插值的船体曲面重构方法,用于对船体线框 模型进行重构,包括下述步骤:
A1.采用特征线将所述船体线框模型划分为曲面片网格;
A2.将所述曲面片网格进行均匀化处理,获得型值点位置坐标,并给所 述型值点加上切矢特征,生成非均匀有理B样条网格;
A3.采用带重节点的B样条曲面插值所述非均匀有理B样条网格,获得 多块非均匀有理B样条曲面片,并沿着多块所述非均匀有理B样条曲面片之 间的所述特征线将多块所述非均匀有理B样条曲面片拼接起来,以获得无缝 隙的非均匀有理B样条曲面。
优选的,在所述步骤A1中所述特征线包括:平边线、平底线、尾封板 线和折角线。
优选的,所述船体线框模型由横剖线和水线组成。
优选的,在所述步骤A1中对所述船体线框模型划分的条件为:
S1.所述特征线延伸到相对边界;
S2.异向的所述特征线相交;
S3.所述船体线框模型的所述水线与异向的所述特征线相交。
优选的,在所述步骤A2中生成所述非均匀有理B样条网格的具体过程 为:
所述曲面片网格包括所述水线,分别将所述曲面片网格内的每条所述水 线进行采样和网格均匀化处理,使得每条所述水线上的采样点的数相等,且 相邻两个所述采样点之间的距离相等,所述采样点即为所述型值点,获取所 述型值点的位置,并给所述型值点加上切矢特征,生成所述非均匀有理B样 条网格。
优选的,加有切矢特征的所述型值点表示为Q(x,y,z,ida_u,idf_u,ida_v,idf_v);
其中(x,y,z)表示所述型值点在笛卡尔直角坐标系的位置坐标;ida_u 表示所述型值点沿着u方向的左导数条件;idf_u表示所述型值点沿着u方 向的右导数条件;ida_v表示所述型值点沿着v方向的左导数条件;idf_v表 示所述型值点沿着v方向的右导数条件,所述参数u、v与所述位置坐标参数 x,y及z的关系为:
优选的,所述型值点的切矢特征的切矢值为所述型值点所在所述曲面片 网格中一子网格内的对应等参数线的弦长,所述切矢值类型包括:
ORDINARY:未设定左右切矢,即普通点;
DIRLINE:以两个所述型值点所在直线方向为切方向,若切方向为0, 切矢条件退化为重顶点条件;
DIRCURVE:以所述型值点出发的连续三个所述型值点插值出的抛物线 在所述型值点处的切方向为切方向,若不够三个型值点,退化成DIRLINE; 若切方向为0,切矢条件退化为重顶点条件。作为端点切矢的默认值;
DIRMIDCURVE:以所述型值点和左右两个所述型值点插值出的抛物线 在所述型值点处的切方向为切方向,用于光滑拼接。若三个所述型值点中有 且仅有两个,则退化成DIRLINE;若切方向为0,切矢条件退化为重顶点条 件;
INVERSE:表示该方向的切矢与其相反方向切矢相等,用于180°的光 滑拼接。
优选的,在所述步骤A2中所述型值点的默认特征为ORDINARY,当所 述型值点位于特征线上时,所述型值点的切矢特征根据下述规则确定:
a若所述型值点位于所述折角线或者位于部分所述折角线的折角部分 时,添加左右切矢DIRLINE或DIRCURVE;
b若所述型值点位于部分所述折角线的不折部分或曲面的光滑部分时, 添加左右切矢DIRMIDCURVE;
c若所述型值点位于切线时,添加左或右切矢DIRLINE或DIRCURVE; 若左右切矢成180度,则添加左或右切矢INVERSE。
优选的,在所述步骤A3中所述B样条曲面为双三次B样条曲面。
上述技术方案的有益效果:
采用所述船体曲面重构方法可用较少的曲面片(几至十几块)重构带有 球首、球尾、平边线、平底线、部分折角线和方尾的复杂船体曲面,生成无 缝隙的NURBS曲面,以达到光顺的船体曲面的效果,且方便对其进行修改。
附图说明
图1为本发明所述船体曲面重构方法的一种实施例的方法流程图;
图2为带平底线和方尾船的曲面划分示意图;
图3为带平底线和方尾船的NURBS网格图;
图4为表示网格型值点、切矢和扭矢示意图;
图5a-5b为曲线重顶点示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特 征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的 限定。
如图1所示,基于非均匀有理B样条曲面插值的船体曲面重构方法,用 于对船体线框模型XYZSurf进行重构,包括下述步骤:
A1.采用特征线将船体线框模型XYZSurf划分为曲面片网格;
A2.将曲面片网格进行均匀化处理,获得型值点位置坐标,并给型值点 加上切矢特征,生成非均匀有理B样条网格;
A3.采用带重节点的B样条曲面插值带切矢和重点的非均匀有理B样条 网格,获得多块非均匀有理B样条曲面片,并沿着多块所述非均匀有理B样 条曲面片之间的所述特征线将多块所述非均匀有理B样条曲面片拼接起来, 以获得无缝隙的非均匀有理B样条曲面,并在特征线上达到G1或G0(折角 线)连续。
在本实施例中,采用船体曲面重构方法可用较少的曲面片(几至十几块) 重构带有球首、球尾、平边线、平底线、部分折角线和方尾的复杂船体曲面, 生成无缝隙的NURBS曲面,以达到光顺的船体曲面的效果。由于NURBS 曲面由较少的曲面片组成可方便对其进行修改的设计要求。采用该方法可为 船舶结构设计、CAM(computer Aided Manufacturing,计算机辅助制造)和 CFD(Computational Fluid Dynamics,计算流体动力学)计算提供良好的船 体NURBS曲面模型。
在优选的实施例中,在步骤A1中特征线包括:平边线、平底线、尾封 板线、折角线和特殊线。
在本实施例中,采用特征线可把船体曲面划分为内部不含特征线的曲面 片网格,便于表达复杂船体曲面和保留船体特征。确定分块规则可使相关曲 面片的u、v节点向量保持一致,以满足NURBS网格的要求。如图2所示, 展示了一艘带平底线和方尾船的划分图,划分成4块曲面片。
在优选的实施例中,一般船体线框模型XYZSurf由横剖线和水线组成。 它们用B样条曲线(spline)或折线(polyline)表达。在曲率变化大的地方 可通过对横剖线的插值,加密水线。B样条曲线的形状取决于三个要素:节 点矢量、曲线的次数和控制多边形顶点位置。
在优选的实施例中,在步骤A1中对船体线框模型划分的条件为:
S1.特征线延伸到相对边界;
S2.异向的特征线相交(在一定误差范围内);
S3.船体线框模型的水线与异向的特征线(包括边界线)相交。
在优选的实施例中,在步骤A2中生成非均匀有理B样条网格的具体过 程为:
曲面片网格包括水线,分别将曲面片网格内的每条水线进行采样和网格 均匀化处理,使得每条水线上的采样点的数相等,且相邻两个采样点之间的 距离相等,采样点即为型值点,获取型值点的位置,并给型值点加上切矢特 征,生成非均匀有理B样条网格。
在本实施例中,进一步的,将型值点拟合成B样条曲线作为v线。将所 有v线上对应的点拟合成B样条曲线作为u线。根据上述v线和u线,在每 两段特征线之间设定一个密度,通过插值可以得到不同疏密的曲面片网格型 值点的位置,并给型值点加上切矢特征,生成NURBS网格,便于用较少的 曲面片重构复杂船体曲面。如图3所示,展示了一艘带平底线和方尾船的 NURBS网格图。
在优选的实施例中,加有切矢特征的型值点表示为 Q(x,y,z,ida_u,idf_u,ida_v,idf_v),可以很好地表达了型值点的位置和切矢;
其中(x,y,z)表示型值点在笛卡尔直角坐标系的位置坐标;ida_u表 示型值点沿着u方向的左导数条件;idf_u表示型值点沿着u方向的右导数 条件;ida_v表示型值点沿着v方向的左导数条件;idf_v表示型值点沿着v 方向的右导数条件,参数u、v与位置坐标参数x,y及z的关系为:
在优选的实施例中,型值点的切矢特征的切矢值为型值点所在曲面片网 格中一子网格内的对应等参数线的弦长,切矢值类型包括:
ORDINARY:未设定左右切矢,即普通点;
DIRLINE:以两个型值点所在直线方向为切方向,若切方向为0,切矢 条件退化为重顶点条件;
DIRCURVE:以型值点出发的连续三个型值点插值出的抛物线在型值点 处的切方向为切方向,若不够三个型值点,退化成DIRLINE;若切方向为0, 切矢条件退化为重顶点条件,作为端点切矢的默认值;
DIRX:以DIRLINE在X轴的投影为切方向;
DIRY:以DIRLINE在Y轴的投影为切方向;
DIRZ:以DIRLINE在Z轴的投影为切方向;
DIRMIDCURVE:以型值点和左右两个型值点插值出的抛物线在型值点 处的切方向为切方向,用于光滑拼接,若三个型值点中有且仅有两个,则退 化成DIRLINE;若切方向为0,切矢条件退化为重顶点条件;
INVERSE:表示该方向的切矢与其相反方向切矢相等,用于180°的光 滑拼接;
ZERO:切矢取为0。
进一步地,设切矢条件总是一行行或一列列的出现,这种有切矢控制的 线称之为特征线(边界也可以认为是特征线)。如果某一行/列只有部分数据 有切矢控制,用DIRMIDCURVE把该行缺失的特征补全。
在本实施例中,所谓重顶点条件是指顶点相重。如图5a曲线中E0–E5表示曲线的顶点,在重顶点E2=E3附近与边E1E2和E2E3相切,G1连续; 在图5b曲线中,E0–E6表示曲线的顶点,在重顶点E2=E3=E4处是尖点, G0连续,而且与控制多边形两边相切。曲线有连续性(Continuity),如G0、 G1、G2等,G0是一条曲线有一个角度或尖端;G1是一条曲线没有尖端,但 曲率有改变;G2是连续的,曲率不改变。所以,G0可以表示折角线。
在优选的实施例中,在步骤A2中型值点的默认特征为ORDINARY,当 型值点位于特征线上时,型值点的切矢特征根据下述规则确定:
a若型值点位于折角线或者位于部分折角线的折角部分时,添加左右切 矢DIRLINE或DIRCURVE;
b若型值点位于部分折角线的不折部分或曲面的光滑部分时,添加左右 切矢DIRMIDCURVE;
c若型值点位于切线时,添加左或右切矢DIRLINE或DIRCURVE;若左 右切矢成180度,则添加左或右切矢INVERSE。
在优选的实施例中,在步骤A3中B样条曲面为双三次B样条曲面。
在本实施例中,当型值点中某列/行有左或右切矢时,在u方向或v方向 节点向量中用2重节点;当有左右切矢时,用3重节点;当型值点中有重点 时,把重型值点处理成重控制顶点。下面将详细讨论边界有切矢,内部节点 方向u、v方向特征线都有切矢的曲面插值算法。类似地,可以得到其它情况 的算法,不再详述。
于上述技术方案基础上,假设给定:型值点Qi,j(i=0,...,n;j=0,...,m);四条 边界切矢集合分别为:(左边界)、(右边界)、(上边 界)、(下边界);四个角点的扭矢分别为(如图4所示):
两条内部特征线的左右切矢:
第3列网格线集合的左右切矢集合及扭矢:
第3行网格线集合的左右切矢集合及扭矢:
以及内部交点处扭矢:
其中i表示第i行,j表示第j列,n表示整数,m表示整数;
所有切矢可以根据型值点的切矢特征:ida_u、idf_u、ida_v和idf_v估算。
网格型值点、切矢和扭矢如图4所示。
用带重节点的双三次B样条曲面插值上述条件
其中,控制顶点为(n+5)×(m+5)的网格,u方向节点数为n+9,v方向节 点数为m+9。
对于曲面,既可以采用对每条网格线的参数化做平均来得到u、v的参数, 也可采用与曲线参数无关的均匀参数化方法。经过试验,当数据分布不均匀 时(网格线不是几乎平行的),给予曲线参数化,然后取平均的方法效果并不 好,因为此时的参数不再有几何意义。此处采用均匀参数化确定参数值和节 点向量。
u方向参数:
u方向节点向量(含3重节点):
v方向参数:
v方向节点向量(含3重节点):
插值条件为:
将其写成矩阵形式,并利用的双三次 B样条表达式,简化为:
BPNT=M
其中,P是包围NURBS网格的控制点网格的控制点矩阵,M是型值点、 切矢和扭矢矩阵,N与B类似都是三对角矩阵。控制点矩阵:
型值点、切矢和扭矢矩阵:
三对角矩阵:
令R=PNT,得
首先求解BR=M,对M的每一列用追赶法求解,由于系数矩阵相同,所 以效率很高。再用相同方法解NPT=RT,就可得到曲面的控制点网格P。
根据上述插值曲面方法,依次对划分的曲面片的NURBS网格进行插值, 生成多块NURBS曲面片,最后沿着曲面片之间的特征线将它们拼接起来。 也可以用3重节点,将曲面片拼接成一张NURBS曲面。
对于有左右切矢控制的特征线(折角线)B样条曲面满足G0拼接。如果 拼接处只有左切矢或右切矢(如切线),或者没有切矢控制(如部分折角线的 不折部分),需要G1拼接。拼接采用如下方法处理:
使拼接边界处的每个公共顶点与位于两侧各一个相邻非公共顶点共线, 且取相邻控制点的距离为对应型值点距离的1/3。实际处理时,先用切矢条 件对某个子网格进行插值,当处理与之相邻的子网格时,拼接处的切矢控制 用拼接条件替换。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及 保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书 及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含 在本发明的保护范围内。
机译: 曲面插值方法,曲面插值程序和记录媒体
机译: 自由曲面数值控制的曲面插值方法
机译: 生成具有非均匀有理B样条(NURBS)边界格里格块的自由曲面的方法和系统