本技术涉及几何图形三维建模,具体涉及一种几何引擎中螺旋曲面模型的自相交检测方法和程序产品。
背景技术:
1、在计算机图形学和计算机辅助设计中,几何引擎通过三维建模、曲面和实体造型的进行构建各种模型。所构建模型在携带了螺旋曲面,即构建螺旋曲面模型的时候,螺旋曲面模型自相交的情况时有发生,即螺旋曲面模型自身的某一部分与自身的其他部分相交,也就是说,所构建的螺旋曲面模型出错,进而将导致后续所进行的渲染错误、几何形状不正确以及物理仿真失真等问题。
2、但是,几何引擎三维建模、曲面和实体造型的功能实现中难以准确全面的检测螺旋曲面模型上自相交的情况。
技术实现思路
1、本技术的一个目的在于为三维建模、曲面和实体造型实现准确全面的螺旋曲面模型自相交的技术问题。
2、根据本技术实施例的一个方面,公开了一种几何引擎中螺旋曲面模型的自相交检测方法,所述方法包括:
3、响应于几何引擎发起的螺旋曲面模型参数化建模,发起所即将构建螺旋曲面模型的自相交检测,所述自相交检测包括非周期的自相交检测和周期性自相交检测;
4、通过对应于旋转周期的轮廓线进行螺旋曲面模型非周期的自相交检测,确定所述螺旋曲面模型上轮廓线自相交的情况,所述螺旋曲面模型是所述几何引擎当前进行参数化建模所待构建输出的模型;
5、通过对旋转周期中轮廓线的剖面表达继续处理非周期下的自相交检测,确定所述螺旋曲面模型上非轮廓线自相交的情况;
6、进行连续周期下的自相交检测确定所述螺旋曲面模型上周期性自相交的情况;
7、获取自相交检测中定位的自相交点,形成所述螺旋曲面模型上的自相交点集,所述自相交点集用于所述螺旋曲面模型自相交情况的处理。
8、根据本技术实施例的一个方面,所述通过对应于旋转周期的轮廓线进行螺旋曲面模型非周期的自相交检测,确定所述螺旋曲面模型上轮廓线自相交的情况,包括:
9、在对应于旋转周期的轮廓线上,都进行两点之间距离大小的度量,确定所映射的最小度量参数;
10、根据所述轮廓线上最小度量参数确定所述螺旋曲面模型上存在轮廓线自相交的情况,所述轮廓线上对应于最小度量参数的点是定位的自相交点。
11、根据本技术实施例的一个方面,所述在对应于旋转周期的轮廓线上,都进行两点之间距离大小的度量,确定所映射的最小度量参数,包括:
12、面向对应于旋转周期的轮廓线,获取所述轮廓线的曲线函数;
13、通过所述曲线函数对轮廓线上两点之间进行度量计算,并由此获得度量距离大小的一组距离衡量值,每一距离衡量值对应于所述轮廓线上的两点;
14、取该组距离衡量值中的最小值为所述轮廓线上的最小度量参数。
15、根据本技术实施例的一个方面,所述通过所述曲线函数对轮廓线上两点之间进行度量计算,并由此获得度量距离大小的一组距离衡量值,包括:
16、对轮廓线进行两端逼近,在所述轮廓线两端逼近的进行中通过所述曲线函数确定两点在二维空间的映射值,由所述映射值进行两点之间的度量计算;
17、通过轮廓线上度量所得数值衡量两点之间的距离,获得两点之间的距离衡量值,以此类推,完成所述轮廓线上的两端逼近。
18、根据本技术实施例的一个方面,所述通过轮廓线上度量所得数值衡量两点之间的距离,获得两点之间的距离衡量值,包括:
19、以轮廓线上度量所得数值的二范数来衡量两点之间的距离,并将所述二范数的平方作为两点之间的距离衡量值。
20、根据本技术实施例的一个方面,所述通过对旋转周期中轮廓线的剖面表达继续处理非周期下的自相交检测,确定所述螺旋曲面模型上非轮廓线自相交的情况,包括:
21、通过所述旋转周期中的轮廓线以及相应的螺旋轴获得所述轮廓线的剖面表达,所述剖面表达为所述轮廓线所在螺旋曲面模型的剖面线或所述剖面线的近似表示;
22、进行所述剖面表达的自相交检测,由所述剖面表达的自相交与否来确定所述螺旋曲面模型上非轮廓线自相交的情况。
23、根据本技术实施例的一个方面,所述剖面表达为剖面线,所述通过所述旋转周期中的轮廓线以及相应的螺旋轴获得所述轮廓线的剖面表达,包括:
24、对所述旋转周期中的轮廓线都进行所述旋转周期下的螺旋曲面模型以及所述螺旋曲面模型中的截面生成,所述截面包含所述螺旋曲面模型的螺旋轴;
25、对所述螺旋曲面模型和截面进行交运算获得剖面线。
26、根据本技术实施例的一个方面,所述进行所述剖面表达的自相交检测,由所述剖面表达的自相交与否来确定所述螺旋曲面模型上非轮廓线自相交的情况,包括:
27、在所述剖面线上进行两点之间距离大小的度量,确定所述剖面线的最小度量参数;
28、根据所述剖面线的最小度量参数确定所述剖面线的自相交,由所述剖面线的自相交确定所述螺旋曲面模型上非轮廓线自相交的情况。
29、根据本技术实施例的一个方面,所述在所述剖面线上进行两点之间距离大小的度量,确定所述剖面线的最小度量参数,包括:
30、对所述剖面线获取所述剖面线的曲线函数;
31、通过所述曲线函数对剖面线上两点之间进行度量计算,并由此获得度量两点之间距离大小的一组距离衡量值,每一距离衡量值对应于所述轮廓线上的两点;
32、取该组距离衡量值中的最小值为所述剖面线的最小度量参数。
33、根据本技术实施例的一个方面,所述通过所述曲线函数对剖面线上两点之间进行度量计算,并由此获得度量两点之间距离大小的一组距离衡量值,包括:
34、对所述剖面线进行两端逼近,在所述剖面线两端逼近的进行中通过所述曲线函数确定两点在二维空间的映射值,则所述映射值进行两点之间的度量计算;
35、通过轮廓线上度量所得数值衡量两点之间的距离,获得两点之间的距离衡量值,以此类推,完成所述剖面线上的两端逼近。
36、根据本技术实施例的一个方面,所述通过轮廓线上度量所得数值衡量两点之间的距离,获得两点之间的距离衡量值,包括:
37、以轮廓线上度量所得数值的二范数来衡量两点之间的距离,并将所述二范数的平方作为两点之间的距离衡量值。
38、根据本技术实施例的一个方面,所述剖面表达为所述剖面线的近似表示,所述通过所述旋转周期中的轮廓线以及相应的螺旋轴获得所述轮廓线的剖面表达,包括:
39、对所述轮廓线生成采样参数集合,所述采样参数集合用于控制对所述轮廓线采样;
40、按照所述采样参数集合对所述轮廓线采样,采样所得采样点形成点集;
41、将所述点集中的采样点转换至包含螺旋轴的同一平面获得所述轮廓线所在螺旋曲面模型上剖面线的近似表示。
42、根据本技术实施例的一个方面,所述采样参数集合是所在定义域内的递增数列。
43、根据本技术实施例的一个方面,所述对所述轮廓线生成采样参数集合,包括:
44、适配于采样精度对所述轮廓线获取任意点形成所述采样参数集合,所述任意点归属于所述轮廓线的定义域,获取所述任意点的数量对应于所述采样精度。
45、根据本技术实施例的一个方面,所述将所述点集中的采样点转换至包含螺旋轴的同一平面获得所述轮廓线所在螺旋曲面模型上剖面线的近似表示,包括:
46、对所述点集中的每一采样点,都绕所述螺旋轴旋转至包含所述螺旋轴的同一平面,获得所述采样点在所述平面上的二维点形成二维点集;
47、通过所述二维点集中的所有点获得所述轮廓线所在螺旋曲面模型上剖面线的近似表示。
48、根据本技术实施例的一个方面,所述通过所述二维点集中的所有点获得所述轮廓线所在螺旋曲面模型上剖面线的近似表示,包括:
49、对所述二维点集中的所有点拟合,以拟合所得到的线为所述轮廓线所在螺旋曲面模型上剖面线的近似表示。
50、根据本技术实施例的一个方面,所述通过所述二维点集中的所有点获得所述轮廓线所在螺旋曲面模型上剖面线的近似表示,包括:
51、连线所述二维点集中的二维点,得到若干折线段,所述若干折线段形成折线段集合,以所述折线段集合作为所述轮廓线所在螺旋曲面模型上剖面线的近似表示。
52、根据本技术实施例的一个方面,所述进行所述剖面表达的自相交检测,由所述剖面表达的自相交与否来确定所述螺旋曲面模型上非轮廓线自相交的情况,包括:
53、对所述剖面表达,进行两点之间距离大小的度量,确定所映射的最小度量参数;
54、根据所述最小度量参数确定所述剖面表达的自相交情况,由剖面表达的自相交与否来确定所述螺旋曲面模型上非轮廓线自相交的情况,所述剖面表达上对应于最小度量参数的点是定位的自相交点。
55、根据本技术实施例的一个方面,所述对所述剖面表达,进行两点之间距离大小的度量,确定所映射的最小度量参数,包括:
56、面向对应于旋转周期的剖面表达,获取对应的曲线函数;
57、通过所述曲线函数对所述剖面表达上两点之间进行度量计算,并由此获得度量距离大小的一组距离衡量值,每一距离衡量值对应于所述剖面表达上的两点;
58、取该组距离衡量值中的最小值为所述轮廓线上的最小度量参数。
59、根据本技术实施例的一个方面,所述通过所述曲线函数对所述剖面表达上两点之间进行度量计算,并由此获得度量距离大小的一组距离衡量值,包括:
60、对所述剖面表达进行两端逼近,在所述剖面表达两端逼近的进行中通过所述曲线函数确定两点在二维空间的映射值,由所述映射值进行两点之间的度量计算;
61、通过轮廓线上度量所得数值衡量两点之间的距离,获得两点之间的距离衡量值,以此类推,完成所述剖面表达上的两端逼近。
62、根据本技术实施例的一个方面,所述通过轮廓线上度量所得数值衡量两点之间的距离,获得两点之间的距离衡量值,包括:
63、以轮廓线上度量所得数值的二范数来衡量两点之间的距离,并将所述二范数的平方作为两点之间的距离衡量值。
64、根据本技术实施例的一个方面,所述进行连续周期下的自相交检测确定所述螺旋曲面模型上周期性自相交的情况,包括:
65、通过绘制对应于各旋转周期的螺旋曲面模型获得所述旋转周期所对应的剖面线;
66、进行相邻周期所对应剖面线之间的距离计算,获得相邻周期的剖面线距离;
67、根据所述相邻周期的剖面线距离对相交的剖面线判定所在螺旋曲面模型周期性自相交。
68、根据本技术实施例的一个方面,所述进行连续周期下的自相交检测确定所述螺旋曲面模型上周期性自相交的情况,包括:
69、对预构建的螺旋曲面模型,获取表征起始剖面线的曲线函数,所述曲线函数在预构建所述螺旋曲面模型的起始周期表征所述螺旋曲面模型在截面上的剖面线;
70、通过所述起始剖面线的曲线函数,迭代运算得到相邻周期所对应剖面线的曲线函数,由所述曲线函数控制执行相邻周期的剖面线距离计算,获得相邻周期的剖面线距离;
71、根据所述相邻周期的剖面线距离对相交的剖面线判定所在螺旋曲面模型周期性自相交。
72、根据本技术实施例的一个方面,所述相邻周期所对应剖面线的曲线函数运算,还包括:
73、相对于当前周期所对应的剖面线,进行所述剖面线曲线函数的平移处理获得相邻周期所对应剖面线的曲线函数,所述当前周期所对应的剖面线包括起始剖面线,和迭代运算相邻周期所对应剖面线的上一周期剖面线。
74、根据本技术实施例的一个方面,所述螺旋曲面模型的螺距在连续周期下递增或递减,所述相对于当前周期所对应的剖面线,进行所述剖面线曲线函数的平移处理获得相邻周期所对应剖面线的曲线函数,包括:
75、对当前周期所对应剖面线的曲线函数进行变形和平移处理,获得相邻周期所对应剖面线的曲线函数。
76、根据本技术实施例的一个方面,所述获取自相交检测中定位的自相交点,形成所述螺旋曲面模型上的自相交点集之后,所述方法还包括:
77、根据所述自相交点集所构成的自相交线分割所述螺旋曲面模型上的自相交螺旋面。
78、根据本技术实施例的一个方面,公开了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器运行时实现如前任意一项所述方法的步骤。
79、根据本技术实施例的一个方面,公开了一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如前任意一项所述方法的步骤。
80、根据本技术实施例的一个方面,公开了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前所述方法的步骤。
81、根据本技术实施例的一个方面,公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前所述方法的步骤。
82、本技术实施例面向所需要进行的螺旋曲面模型构建,响应于几何引擎发起的螺旋曲面模型参数化建模,发起所即将构建螺旋曲面模型的自相交检测,自相交检测包括非周期的自相交检测和周期性自相交检测,通过对应于旋转周期的轮廓线进行螺旋曲面模型非周期的自相交检测以此来首先确定螺旋曲面模型上轮廓线自相交的情况,然后通过对旋转周期中轮廓线的剖面线表达继续处理非周期下的自相应检测,确定螺旋曲面模型上非轮廓线自相交的情况,由此即可对所需要进行的螺旋曲面模型构建完成非周期下的自相交检测。
83、在几何引擎对所需要构建的螺旋曲面模型确定其非周期下的自相交情况之后,再进行连续周期下的自相交检测,从而确定周期性自相交的情况,至此,在所需要实现的螺旋曲面模型自相交检测中兼顾实施了非周期以及周期性的自相交检测,保障了螺旋曲面模型自相交检测得以实现且全面准确。
84、本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
85、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。
1.一种几何引擎中螺旋曲面模型的自相交检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述通过对应于旋转周期的轮廓线进行螺旋曲面模型非周期的自相交检测,确定所述螺旋曲面模型上轮廓线自相交的情况,包括:
3.根据权利要求2所述的方法,其特征在于,所述在对应于旋转周期的轮廓线上,都进行两点之间距离大小的度量,确定所映射的最小度量参数,包括:
4.根据权利要求1所述的方法,其特征在于,所述通过对旋转周期中轮廓线的剖面表达继续处理非周期下的自相交检测,确定所述螺旋曲面模型上非轮廓线自相交的情况,包括:
5.根据权利要求4所述的方法,其特征在于,所述剖面表达为剖面线,所述通过所述旋转周期中的轮廓线以及相应的螺旋轴获得所述轮廓线的剖面表达,包括:
6.根据权利要求4所述的方法,其特征在于,所述剖面表达为所述剖面线的近似表示,所述通过所述旋转周期中的轮廓线以及相应的螺旋轴获得所述轮廓线的剖面表达,包括:
7.根据权利要求1所述的方法,其特征在于,所述进行连续周期下的自相交检测确定所述螺旋曲面模型上周期性自相交的情况,包括:
8.根据权利要求1所述的方法,其特征在于,所述进行连续周期下的自相交检测确定所述螺旋曲面模型上周期性自相交的情况,包括:
9.根据权利要求1所述的方法,其特征在于,所述获取自相交检测中定位的自相交点,形成所述螺旋曲面模型上的自相交点集之后,所述方法还包括:
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器运行时实现如权利要求1-9任意一项所述方法的步骤。