基于闭合轮廓线的三维闭合曲面构造算法制造技术

技术编号:22468963 阅读:32 留言:0更新日期:2019-11-06 12:14
本发明专利技术实施例提供的基于闭合轮廓线的三维闭合曲面构造算法,属于三维建模领域,其包括输入一系列轮廓线数据,轮廓线数据包括点坐标、点标记和平面标记;分别在各个轮廓线所在平面生成属性采样点;根据所述属性采样点的属性值对当前空间进行插值;利用CGAL对插值后的空间进行等值面提取,所提取出的等值面即为所述三维闭合曲面。相较于基于轮廓线的直接连接方法,该算法不需要考虑轮廓线之间的对应关系和轮廓线之间的形态和节点数的差异,同时也适用于轮廓线多分叉的情况,而且也不用考虑轮廓线的凹凸性,对非凸轮廓线同样适用,它易于实现,计算速度快,只需要轮廓数据,具有基本的几何性质即可完成曲面构造。

An algorithm for constructing 3D closed surface based on closed contour

【技术实现步骤摘要】
基于闭合轮廓线的三维闭合曲面构造算法
本专利技术涉及一种基于闭合轮廓线的三维闭合曲面构造算法,应用于三维建模领域,可以弥补针对复杂曲面建模常用的轮廓线重构法的不足的问题。
技术介绍
由闭合轮廓线重建三维闭合曲面在地质建模、医学图像、人体断层解剖、人脸识别、城市建模、逆向工程等领域有着广泛的应用,是计算机可视化技术中的重要技术。基于轮廓线的建模方法有最大体积法、最小表面积法、最短对角线法和同步前进法、分支中间轮廓线法、切开-缝合法等。对于最大体积法和最小表面积法,这两种方法是一种全局优化方法,但这种全局优化的方法效率则相对低下;对于最短对角线法,当上下两条轮廓线的形态存在较大差异或者轮廓线上节点数相差较大时,会出现连接错误的情况;对于同步前进法,当两个轮廓线的节点数相差较大或者轮廓线的凹凸性差别较大时,容易产生三角面片相互交叉的现象;对于分支中间轮廓线法,其处理也主要针对一对二的分支进行处理,并没有对多分叉的轮廓线进行处理;对于切开-缝合法,虽然解决了轮廓线间不相互平行的问题和轮廓线间形状和节点数差异较大的问题,但也只考虑了两条轮廓线间的建模,并没有对多条轮廓线建模提出方法。基于轮廓线的直接连接方法(最大体积、最小表面积等),都只能处理简单的平行轮廓线问题,当轮廓线存在多对多,或者相互交叉时,直接连接方法无法正常工作。同时也不存在插值或者拟合方法能够根据闭合轮廓线直接构造多值曲面方程。
技术实现思路
本专利技术实施例在于提供一种基于闭合轮廓线的三维闭合曲面构造算法,其能够缓解上述问题。为了缓解上述的问题;本专利技术实施例采取的技术方案如下:本专利技术实施例提供的一种基于闭合轮廓线的三维闭合曲面构造算法,包括以下步骤:A、输入一系列轮廓线数据;B、分别在各个轮廓线所在平面生成属性采样点;C、根据所述属性采样点的属性值对当前空间进行插值;D、利用CGAL对插值后的空间进行等值面提取,所提取出的等值面即为所述三维闭合曲面。在本专利技术实施例中,在基于闭合轮廓线的三维闭合曲面构造中,引入了属性值等值面提取的完成复杂建模,在该算法中不需要考虑轮廓线之间的对应关系和轮廓线之间的形态和节点数的差异,同时也适用于轮廓线多分叉的情况,而且也不用考虑轮廓线的凹凸性,对非凸轮廓线同样适用,该算法效率高,不易出错。对空间采样点属性值进行插值处理后,能够消除噪声数据的影响,形成具有渐变特征的连续空间数据,达到更好的建模效果。可选地,步骤A中的轮廓线数据具体要求为:轮廓线数据包括点坐标、点标记和平面标记,点坐标位于右手坐标系中,用(x,y,z)表示;点标记用数字1表示该轮廓线的起点,数字2表示该轮廓线中间点,数字3表示轮廓线的终点;在同一平面上的轮廓线数据拥有相同的平面标记。要求输入多个闭合的轮廓线,闭合轮廓线的顶点按照相同的绕转顺序排列,即同为逆时针顺序排列或者同为顺时针顺序排列,这些轮廓线位于多个平面上,一个平面包含一个或多个轮廓线。可选地,步骤B具体包括:B1、将所有平面标记加入平面标记遍历队列;B2、如果平面标记遍历队列为空,则跳转至步骤B9,否则继续执行步骤B3;B3、从平面标记遍历队列中取出一个平面标记,由该平面标记获取该平面的所有轮廓线数据,根据点标记构造该平面的轮廓线;B4、从平面的第1个轮廓线的第1个点开始,依次取三个点,若三个点在同一直线上,继续依次向后取点,直至三个点不在同一直线,用这三个点构造平面P1;B5、计算平面P1到XOY平面的旋转变换矩阵T,将步骤B4中所述平面上的点的齐次坐标(x,y,z,1)右乘旋转变换矩阵T变换至XOY平面;B6、遍历XOY平面上所有的点,分别取横坐标最大值点与最小值点,过这两点做垂直于X轴的直线;再分别取纵坐标最大值点与最小值点,过这两点做垂直于Y轴的直线;所做的直线构成包围所有轮廓线点的二维包围盒子,将该包围盒子上、下、左、右扩张50%得到平面矩形R;B7、取平面矩形R对角线长度除以200为步长Δ,沿平面矩形R左下角顶点按步长取采样点;B8、遍历每一个采样点,对于每一个采样点,使用射线法判断采样点与轮廓线的位置关系,令在该轮廓线之内的点的属性值为-1,令在该轮廓线之外的点的属性值为1,令在该轮廓线之上的点的属性值为0,跳转至步骤B2;B9、根据旋转变换矩阵T的逆矩阵T-1,将所有带属性值的采样点数据按照逆矩阵T-1变换回三维空间;B10、将所有带属性值的采样点加入采样点遍历队列;B11、如果采样点遍历队列为空,则结束,否则继续执行步骤B12;B12、在三维空间中选取一个采样点,求得该采样点到各轮廓线的最小距离值,并用最小的最小距离值乘以该采样点的属性值,以作为该采样点的最终属性值,跳转至步骤B11。在本专利技术实施例中,构造的采样点属性值满足在闭合曲面内部小于0,闭合曲面上等于0,闭合曲面外大于0,且这些采样点的属性值在空间中的变化是连续的,不存在突跳点。可选地,步骤B3中所述根据该平面的所有点标记构造该平面的轮廓线是指:按照数据列表中的顺序依次为相邻的两个点构造线段,并构造点标记为3到1的线段,组成闭合多边形,即为所构造的轮廓线。可选地,步骤B5中所述旋转变换矩阵R的计算方法是:求得平面P1的法向量令与XOZ平面的夹角为α,与YOZ平面的夹角为β,可得其中在本专利技术实施例中,在三维空间计算采样点属性值较为复杂,根据旋转变换矩阵将三维计算变为二维计算问题,简化了算法复杂度,提高了可实施性。可选地,步骤B8中所述使用射线法判断采样点与轮廓线的位置关系是指:从待判定采样点向随机方向引出一条射线;若该射线与轮廓线不相交,则交点数不变;若该射线与轮廓线非顶点相交,则交点数加1;若该射线与轮廓线顶点相交,则判断与该轮廓线相邻的两顶点是否在射线的同侧,若在,则交点数不变,若不在,则交点数加1;如果交点数为偶数,则该采样点在轮廓线之外,如果交点数为奇数,则该采样点在轮廓线之内。可选地,步骤C中的插值方法使用的是层次B样条插值法,包括:在当前空间矩形域Ω上定义层次化的控制点网格Φ0,Φ1,…Φn,n为下标序号,设第一层控制点网格Φ0的规模已经给定,每相邻两层控制点网格的间距从前至后逐一减半;根据B样条插值法,在第一层控制点网格构造的初始数据体,初始数据会和原始数据形成一定的误差,接下来在每一层控制点网格均通过B样条插值函数逼近前一层控制点网格的误差,直至误差收敛到一个设定的极小阈值,最终得到插值后的数据体。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举本专利技术实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1是本专利技术所述基于闭合轮廓线的三维闭合曲面构造算法流程图;图2是生成属性采样点的流程图;图3是轮廓线数据构造闭合轮廓线图;图4是同一平面上的两个轮廓线图;图5是算法生成最终闭合曲面图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文档来自技高网...

【技术保护点】
1.一种基于闭合轮廓线的三维闭合曲面构造算法,其特征在于,包括A、输入一系列轮廓线数据;B、分别在各个轮廓线所在平面生成属性采样点;C、根据所述属性采样点的属性值对当前空间进行插值;D、利用CGAL对插值后的空间进行等值面提取,所提取出的等值面即为所述三维闭合曲面。

【技术特征摘要】
1.一种基于闭合轮廓线的三维闭合曲面构造算法,其特征在于,包括A、输入一系列轮廓线数据;B、分别在各个轮廓线所在平面生成属性采样点;C、根据所述属性采样点的属性值对当前空间进行插值;D、利用CGAL对插值后的空间进行等值面提取,所提取出的等值面即为所述三维闭合曲面。2.根据权利要求1所述基于闭合轮廓线的三维闭合曲面构造算法,其特征在于,步骤A中的轮廓线数据具体要求为:轮廓线数据包括点坐标、点标记和平面标记;点坐标位于右手坐标系中,用(x,y,z)表示;点标记用数字1表示该轮廓线的起点,数字2表示该轮廓线中间点,数字3表示轮廓线的终点;在同一平面上的轮廓线数据拥有相同的平面标记;要求输入多个闭合的轮廓线,闭合轮廓线的顶点按照相同的绕转顺序排列,即同为逆时针顺序排列或者同为顺时针顺序排列,这些轮廓线位于多个平面上,一个平面包含一个或多个轮廓线。3.根据权利要求2所述基于闭合轮廓线的三维闭合曲面构造算法,其特征在于,步骤B具体包括:B1、将所有平面标记加入平面标记遍历队列;B2、如果平面标记遍历队列为空,则跳转至步骤B9,否则继续执行步骤B3;B3、从平面标记遍历队列中取出一个平面标记,由该平面标记获取该平面的所有轮廓线数据,根据点标记构造该平面的轮廓线;B4、从平面的第1个轮廓线的第1个点开始,依次取三个点,若三个点在同一直线上,继续依次向后取点,直至三个点不在同一直线,用这三个点构造平面P1;B5、计算平面P1到XOY平面的旋转变换矩阵T与逆矩阵T-1,将步骤B4中所述平面上点的齐次坐标(x,y,z,1)右乘旋转变换矩阵T变换至XOY平面;B6、遍历XOY平面上所有的点,分别取横坐标最大值点与最小值点,过这两点做垂直于X轴的直线;再分别取纵坐标最大值点与最小值点,过这两点做垂直于Y轴的直线;所做的直线构成包围所有轮廓线点的二维包围盒子,将该包围盒子上、下、左、右扩张50%得到平面矩形R;B7、取平面矩形R对角线长度除以200为步长Δ,沿平面矩形R左下角顶点按步长取采样点;B8、遍历每一个采样点,对于每一个采样点,使用射线法判断采样点与轮廓线的位置关系,令在该轮廓线之内的点的属性值为-1,令在该轮廓线之外的...

【专利技术属性】
技术研发人员:邓飞李磊赵晓宇张栗
申请(专利权)人:成都理工大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1