等距曲线的生成方法与流程

文档序号:11950924阅读:1277来源:国知局
本发明涉及一种缝纫机技术,尤其涉及一种等距曲线的生成方法。
背景技术
:缝纫工艺中常采用多重缝的操作进行缝纫,多重缝操作的特点指缝纫的多条线迹等距(平行)并排分布。目前,缝纫机中进行多重缝的形状有直线、多边形、圆弧、圆和自由曲线,其中,直线、多边形、圆弧和圆的表示函数简单,均容易生成等距的线迹,而自由曲线却不能用一个直观的函数来描述,故生成理想等距曲线的难度较大,并且,由于自由曲线的形状变化多样,在曲率较大的情况下向曲率中心偏移,会出现线迹相交的现象,行业内称其为自交圈,这是缝纫工艺中所忌讳的,因此,如何生成线迹等距且无自交圈现象的自由曲线是缝纫工艺中研究的重点。目前,现有生成自由曲线的方法主要有两种方案,其一:首先,偏移参照曲线(原曲线)的形状点,得到一组新的形状点,然后拟合这些新的形状点,得到新曲线;其二:将参照曲线看作多条小直线的组合,然后平移这些小直线,同时去掉产生的自交圈,生成一组近似曲线。其中,方案一简单易行,生成的自由曲线光滑,但是经常会出现自交圈,且并不能保证得到的偏移曲线之间等距;方案二基本能保证曲线等距,容易去掉自交圈,但是其光滑性差,失去了参照曲线的形状点信息,不能单独作为一条曲线,不利于进一步修改。因此,虽然利用上述技术方案均能够生成自由曲线,但是其均不能保证生成的自由曲线同时兼具光滑性、间距相等和无自交圈的特点。技术实现要素:本发明提供了一种等距曲线的生成方法,通过偏移参照曲线的形状点和插值点,并对生成的偏移曲线进行自交圈判断和去除,使得生成的等距曲线 同时兼具曲线间距相等、无自交圈、曲线光滑,且保留了参照曲线特性信息的特点。本发明提供的一种等距曲线的生成方法,包括:根据参照曲线上的一组参照形状点,计算出所述参照曲线上的一组参照插值点;将所述参照形状点和所述参照插值点分别沿其法线向量方向进行偏移,得到一组偏移形状点和一组偏移插值点;将所述偏移插值点进行连线,得到所述参照曲线的偏移曲线,所述偏移形状点作为所述偏移曲线的形状点;根据所述参照曲线在所述参照形状点处的函数表达式,判断所述偏移曲线上是否存在自交圈;若所述偏移曲线上存在至少一个自交圈,去除所述至少一个自交圈,得到所述参照曲线的等距曲线;其中,所述自交圈是所述参照曲线的一条偏移曲线自相交形成的。本发明提供的等距曲线的生成方法,首先通过偏移参照曲线的形状点和插值点,得到一组偏移形状点和一组偏移插值点,然后将所述偏移插值点的连线作为偏移曲线,偏移形状点作为偏移曲线的形状点,最后若判断出该偏移曲线上存在自交圈,则将该自交圈去除,进而得到上述参照曲线的等距曲线。采用本发明技术方案生成的等距曲线,具有曲线间距相等、无自交圈、曲线光滑,且保持了参照曲线特性信息的特点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明等距曲线的生成方法实施例一的流程图;图2为本发明等距曲线的生成方法实施例二的流程图;图3为本发明等距曲线的生成方法实施例三的流程图;图4为本发明等距曲线的生成方法实施例四的流程图;图5为本发明等距曲线的生成方法实施例五的流程图;图6为两条偏移曲线段的相交示意图;图7为本发明等距曲线的生成方法实施例六的流程图;图8为采用现有技术方案一得到的等距曲线图;图9为采用现有技术方案二得到的等距曲线图;图10为采用本发明提供的技术方案得到的等距曲线图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。多重缝操作是缝纫工艺中常用的一种缝纫操作方法,这种操作要求缝纫的多条线迹等距(平行)并排分布。目前,缝纫机中可以进行多重缝操作的形状主要有直线、多边形、圆弧、圆和自由曲线。其中,直线、多边形、圆弧和圆的表达函数简单,均容易生成等距的线迹,然而,自由曲线却不能用一个直观的函数来描述,因此,生成理想等距曲线的难度较大。进一步地,由于自由曲线的形状变化多样,在自由曲线曲率较大且其偏移曲线的偏移方向指向其曲率中心的情况下,会出现线迹相交的现象,行业内称之为自交圈,这是缝纫工艺中所忌讳的。由于自由曲线的形状是由若干控制点决定的,因此自由曲线本身的生成算法并不唯一,目前,对自由曲线的控制方法主要分为两种:自由曲线穿过控制点和自由曲线不穿过控制点。工业上常用的自由曲线包括:贝塞尔曲线、B样条曲线、NURBS(非均匀有理B样条)曲线等,其均是不穿过(或不一定穿过)控制点的曲线类型,然而,由于穿过控制点的曲线更直观,容易控制,缝纫机中所用的自由曲线大多是穿过控制点的曲线类型,曲线上的这些控制点在行业内称为形状点或特征点。目前,在缝纫机
技术领域
,生成自由曲线的方法主要有两种方案:第一种:通过偏移参照曲线(也即,原曲线)的形状点得到一组新的形 状点,然后再拟合这组新形状点,进而得到参照曲线的等距曲线。这种方法的优点是简单易行且生成的自由曲线光滑,缺点是经常会出现自交圈,且并不能保证得到的偏移曲线之间等距。第二种:将参照曲线看作是多条小直线的组合,然后平移这些小直线,并将平移过程中产生的自交圈去掉,进而生成一组近似的曲线。该方法的优点是基本能保证生成的曲线等距,而且容易去掉自交圈,实现也比较简单,但是生成的该曲线失去了形状点信息,不能单独作为一条曲线存在,不利于作进一步的修改。另外,生成的等距曲线,其光滑性和计算量是一对矛盾,直线分的越细,曲线越光滑,但计算量也越大。虽然上述介绍的两种方法都可以用来生成参照曲线的等距曲线,但是其都具有一定的缺陷,上述方法均不能保证生成的偏移曲线同时满足任意两条偏移曲线间距相等、各条偏移曲线上均没有自交圈,以及保持参照曲线光滑性和曲线特征信息的特点。针对上述问题,本发明提出了一种等距曲线的生成方法,通过偏移参照曲线的形状点和插值点,以及判断自交圈存在以及去除自交圈的操作,使得生成的自由曲线间距相等、曲线光滑且保持了参照曲线的特性信息,而且还不会出现自交圈的现象。本发明提出的等距曲线的生成方法,其用于多重缝操作的自由曲线是穿过形状点的样条曲线,叫做张力样条曲线,其是样条曲线的一种。张力样条曲线的特点是:该曲线好像是将一条有弹性的木条穿过所有的控制点,使得得到的曲线形状在力学上满足总弹性势能最小的特点,所以该张力样条曲线的形状看起来非常自然。值得说明的是,在本发明将要介绍的实施例中,采用的参照曲线均是张力样条曲线,该参照曲线是2阶光滑的,具有连续的曲率。下面来详细的介绍张力样条曲线的相关知识。假设已知的特征点序列为(Xi,Yi),i=1,2,3,...,n,特征点序列的横坐标之间满足条件X1<X2<...<Xn,给定了一个用于控制拐点位置和曲线形态的张力系数σ,且σ≠0。给定一个具有二阶导数连续的单值函数y=f(x),使它满足:Yi=f(Xi),i=1,2,3,...,n,并且,要求f″(x)-σ2f(x)是连续的,并且在每个区间 [Xi,Xi+1](i=1,2,3,...,n-1)上成线性变化,如公式(1)所示:f′′(x)-σ2f(x)=[f′′(Xi)-σ2Yi]Xi+1-xHi+[f′′(Xi+1)-σ2Yi+1]x-XiHi---(1)]]>式中,Hi=Xi+1-Xi。公式(1)是一个二阶非齐次的常系数性微分方程,它的通解为:其中,Y为它对应的齐次方程f″(x)-σ2f(x)=0的通解,即Y=c1e2x+c2e-2x,为它的一个特解,根据该微分方程的初始条件,可以求解出c1,c2和a,b的值。最后,经过整理可得到单值情况下的张力样条函数,如公式(2):f(x)=1σ2sin(σHi){f′′(Xi)sinh[σ(Xi+1-x)]+f′′(Xi+1)sinh[σ(x-Xi)]}+[Yi-f′′(Xi)σ2]Xi+1-xHi+[Yi+1-f′′(Xi+1)σ2]x-XiHi---(2)]]>式中Xi≤X≤Xi+1,Hi=Xi+1-Xi,i=1,2,3,...,n。因此,只要能够确定各离散点处的二阶导数f″(Xi),便可以完全确定这个张力样条函数表达式。下面,介绍推导张力样条曲线上内节点之间的关系式,内节点是指曲线上除首末端点之外的点。首先,对公式(2)进行求导,得到公式(3);f′(x)=1σ2sinh(σHi){-f′′(Xi)cosh[σ(Xi+1-x)]+f′′(Xi+1)cosh[σ(x-Xi)]}-1Hi[Yi-f′′(Xi)σ2]-[Yi+1-f′′(Xi+1)σ2]---(3)]]>式中Xi≤x≤Xi+1,i=1,2,3,...,n。然后,根据推导出内节点关系式,如公式(4);aif′′(Xi-1)σ2+bif′′(Xi)σ2+cif′′(Xi+1)σ2=di---(4)]]>式中ai、bi、ci和di的取值具体参见公式(5);ai=1Hi-1-σsinh(σHi-1)bi=σcoth(σHi-1)-1Hi-1+σcoth(σHi)-1Hici=1Hi-σsinh(σHi)di=Yi+1-YiHi-Yi-Yi-1Hi-1---(5)]]>其中,i=1,2,3,...,n。由于公式(5)是一个含有n个未知数(i=1,2,3,...,n)、n-2个方程的线性方程组,所以,必须附加两个方程,即给出两个端点条件,该方程组才有唯一的组解。一般来说,端点条件应根据实际情况给定。然而,对于单值函数曲线,可以分别利用首端的三个特征点和末端的三个特征点建立抛物线方程或圆弧方程,并分别以它们在首末端点上的切线斜率作为张力样条曲线在首末端点上的一阶导数,即f′(Xi)=Y′if′(Xn)=Y′n(6)有时,为了简单起见,直接分别以首端两个特征点的直线斜率和末端两个特征点的直线斜率作为张力样条曲线在首末端点上的一阶导数。当i=1和i=n-1时,分别将公式(6)代入公式(3),可得到首、末端点处的节点关系式:b1f′′(X1)σ2+c1f′′(X2)σ2=d1anf′′(Xn-1)σ2+bnf′′(Xn)σ2=dn---(7)]]>式中:b1=σcoth(σH1)-1H1c1=1H1-σsinh(σH1)d1=Y2-Y1H1-Y1′---(8)]]>an=1Hn-1-σsinh(σHn-1)bn=σcoth(σHn-1)-1Hn-1dn=Yn′-Yn-Yn-1Hn-1---(9)]]>至此,公式(4)和公式(7)联立组成的方程组是含有n个未知数(i=1,2,3,...,n)、n个方程的线性方程组,可以写成如公式(10)所示的矩阵形式:b1c1a2b2c2......an-1bn-1cn-1anbnf′′(X1)σ2f′′(X2)σ2......f′′(Xn-1)σ2f′′(Xn)σ2=d1d2......dn-1dn---(10)]]>公式(10)是一个对三角线性方程组,利用条件X1<X2<...<Xn,可以证明公式(10)的系数矩阵是非奇异的,因而方程组有唯一的一组解。由于张力样条曲线函数比较复杂,为了适应多值函数的情况,将张力样条曲线函数采用参数方程x=X(s),y=Y(s)来表示,并满足Xi=X(Si),Yi=Y(Si)。参数方程中的x=X(s),y=Y(s)均为张力样条函数,i=1,2,3,...,n。根据单值函数的原理可以求出X(s)和Y(s)的函数表达式,参见公式(11):X(s)=X′′(Si)σ2·sinh(σ(Si+1-s))sinh(σHi)+X′′(Si+1)σ2·sinh(σ(s-Si))sinh(σHi)+(Xi-X′′(Si)σ2)·Si+1-sHi+(Xi+1-X′′(Si+1)σ2)·s-SiHi]]>Y(s)=Y′′(Si)σ2·sinh(σ(Si+1-s))sinh(σHi)+Y′′(Si+1)σ2·sinh(σ(s-Si))sinh(σHi)+(Yi-Y′′(Si)σ2)·Si+1-sHi+(Yi+1-Y′′(Si+1)σ2)·s-SiHi]]>公式(11)中的Si为累加弦长,Hi为分段弦长,s为可变参数,用累加弦长s作为参数,且满足条件S1<S2<...<Sn,即变换s即可得到张力样条曲线上的任意插值点。仍然可以证明参数方程x=X(s),y=Y(s)的系数矩阵也是非奇异的,方程组具有唯一的一组解。此处,X″(Si)和Y″(Si)也可以像公式(10)一样写成矩阵的形式,如公式(12):解得:X′′(S1)···X′′(S2)···X′′(Sn-1)X′′(Sn)=σ2d1-c1·X2′′b1···di′-ci·Xi+1′′bi′···dn-1′-cn-1·Xn′′bn-1′dn′bn′---(3)]]>其中,di′=σ2(di-aibi-1di-1),bi′=bi-aibi-1ci-1.]]>自下而上计算即可得到所有形状点处二阶导数X″(Si)。同理,也可以求出所有形状点处二阶导数Y″(Si),其形式和X″(Si)的形式一样,在此不再赘述。从上面对张力样条曲线的介绍可知,张力样条曲线的函数表达式为公式(2),通过公式(10)能够求出各形状点处的二阶导数f″(Xi),张力样条曲线若写成参数方程的形式则为公式(11),通过公式(13)能够求出参数方程x=X(s)在各形状点处的二阶导数,同理,也可求出参数方程y=Y(s)在各形状点处的二阶导数。图1为本发明等距曲线的生成方法实施例一的流程图。如图1所示,本发明提供的一种等距曲线的生成方法,包括:步骤101:根据参照曲线上的一组参照形状点,计算出该参照曲线上的一组参照插值点;首先,根据上述对张力样条曲线函数的介绍和公式推导,编写张力样条曲线函数y=f(x)的拟合程序,同时,求出其在各形状点处的二阶导数。其次,利用公式(11)对累计弦长s求一阶导,得到该张力样条曲线函数在每个插值点处的一阶导数,参见公式(14):X′(s)=1σ·sinh(σHi){-X′′(Si)·cosh[σ(Si+1-s)]+X′′(Si+1)cosh[σ(s-Si)]}+-[Xi-X′′(Si)σ2]+Xi+1-X′′(Si+1)σ2HiY′(s)=1σ·sinh(σHi){-Y′′(Si)·cosh[σ(Si+1-s)]+Y′′(Si+1)·cosh[σ(s-Si)]}+-[Yi-Y′′(Si)σ2]+Yi+1-Y′′(Si+1)σ2Hi---(14)]]>那么,在该曲线上的任意一点处,y=f(x)对x的一阶导数为公式(15):f′(x)=yx′=dydx=dY(s)dsdX(s)ds=Y′(s)X′(s)---(15)]]>同理,在该曲线上的任意一点处,y=f(x)对x的二阶导数为公式(16):f′′(x)=yx′′=ddydxdx=d(dY(s)ds)(dX(s)ds)dsdX(s)ds=(Ys′Xs′)′Xs′=Ys′′·Xs′-Ys′·Xs′′(Xs′)3=Ys′′·X′-Ys′·X′(Xs′)2Xs′---(16)]]>至此,在该曲线上的任意一点处,求出了y=f(x)对x的一阶函数表达式和二阶函数表达式。根据公式(2)、公式(15)和公式(16)以及张力样条曲线上的一组形状点,就可以计算出张力样条曲线的一组插值点,为了方便说明,在本发明实施例中,将参照曲线上的形状点称为参照形状点,参照曲线上的插值点称为参照插值点。步骤102:将上述参照形状点和参照插值点分别沿其法线向量方向进行偏移,得到一组偏移形状点和一组偏移插值点;由于参照曲线的形状点是已知的,并且在步骤101中也求出了一组参照 插值点,因此,分别将该参照形状点和参照插值点沿其法线向量的方向进行偏移,就可以得到一组偏移形状点和一组偏移插值点。步骤103:将上述偏移插值点进行连线,得到该参照曲线的偏移曲线,上述偏移形状点作为该偏移曲线的形状点;由于上述偏移形状点是由参照曲线的形状点偏移得到的,所以,可以将偏移形状点进行连线得到的曲线,称之为该参照曲线的偏移曲线,将该偏移形状点作为该偏移曲线的形状点。步骤104:根据参照曲线在参照形状点处的函数表达式,判断该偏移曲线上是否存在自交圈;其中,自交圈是参照曲线的一条偏移曲线自相交形成的。由于自交圈出现在曲率较大、偏移方向向内且偏移距离较大的情况下,根据参照曲线在各参照形状点处的特征及偏移方向,可以求出参照形状点处的曲率半径、偏移的方向和偏移的距离,进而判断出其偏移曲线上是否存在自交圈。步骤105:若偏移曲线上存在至少一个自交圈,去除所述至少一个自交圈,得到该参照曲线的等距曲线;经过上述判断,若参照曲线的偏移曲线上存在至少一个自交圈,计算出上述至少一个自交圈在偏移曲线上的交点位置,并将存在的自交圈去除,经过处理后的偏移曲线就是上述参照曲线的等距曲线。本发明实施例一提供的等距曲线的生成方法,首先通过偏移参照曲线的形状点和插值点,得到一组偏移形状点和一组偏移插值点,将所述偏移插值点的连线作为偏移曲线,偏移形状点作为偏移曲线的形状点,最后若判断出该偏移曲线上存在自交圈,则将该自交圈去除,进而得到上述参照曲线的等距曲线。采用本发明技术方案生成的等距曲线,同时兼具曲线间距相等、无自交圈、曲线光滑,且保持了参照曲线特性信息的特点。图2为本发明等距曲线的生成方法实施例二的流程图。本发明实施例二是在上述实施例一的基础上,对上述步骤102的进一步分析。如图2所示,步骤102,具体包括以下步骤:步骤201:根据参照曲线的函数表达式,求出参照曲线的法线函数表达式;由于偏移形状点和偏移插值点是分别通过对参照曲线的每个形状点和每 个插值点沿其法线方向进行偏移求得的,因此,在偏移之前,首先需要根据参照曲线的函数表达式,求出参照曲线的法线函数表达式。步骤202:利用上述参照曲线的法线函数表达式以及参照形状点和参照插值点在法线向量方向上的偏移距离,得出参照曲线上的点偏移后的位置坐标表达式;假设参照曲线y=f(x)的偏移距离为b(右偏为正,左偏为负),那么,根据参照曲线的法线函数表达式,特征点(x0,y0)沿其法线向量偏移距离b后的位置坐标表达式(xnm,ynm)为公式(17)。xnm=x0±by0′1+y0′2ynm=y0±b1+y0′2---(17)]]>其中,y′0是参照曲线在特征点(x0,y0)处的一阶导数值,公式(17)中的加减号由法线向量在特征点(x0,y0)处的向量角度α决定,在x方向上,若sinα<0,则取减号,反之取加号;在y方向上,若cosα<0,则取加号,反之取减号。步骤203:分别将参照插值点和参照形状点代入上述位置坐标表达式,计算得到所述参照插值点对应的一组偏移插值点和所述参照形状点对应的一组偏移形状点。具体的,参照形状点是已知的,参照插值点可以通过实施例一中步骤101中提供的公式(14)至公式(16)求出,分别将参照形状点和参照插值点代入到步骤202得到的偏移位置坐标公式(17)中,可以得到与参照形状点对应的偏移形状点以及与参照插值点对应的偏移插值点。可选的,由于张力样条曲线的形状点常用来表示张力样条曲线的发展趋势,所以参照曲线穿过所有的形状点,且参照曲线的拐弯处均在形状点附近,在本发明的实施例中,可以将参照曲线的所有形状点进行偏移求出偏移形状点。根据公式(3)和公式(10),可以求出在各参照形状点处的二阶导数,进而可计算各参照形状点处的一阶导数y′。将各参照形状点处的一阶导数y′代入公式(17),即可求解出偏移形状点。值得注意的是,偏移形状点只是为了生成并保持偏移曲线的曲线特征而 选取的形状点,并不意味着通过这些偏移形状点可以得到与张力样条曲线一模一样的曲线。但有了这些形状点,可以保持大致的曲线形状,为缝纫机工艺中可能的修改操作做准备。本发明实施例提供的等距曲线的生成方法,通过求参照曲线的法线函数表达式和特征点偏移后的位置坐标公式,进而可以求出各个参照形状点和参照插值点偏移后对应的一组偏移形状点和一组偏移插值点,从而为后续求参照曲线的等距曲线奠定了基础。图3为本发明等距曲线的生成方法实施例三的流程图。本发明实施例三是在上述实施例一技术方案的基础上,对上述步骤104偏移曲线上是否存在自交圈的进一步分析。如何判断偏移曲线上是否存在自交圈是本发明的一个重点,如果参照现有技术方法二所述的方法来发现自交圈,就需要全曲线遍历查找,但是这种方法需要的计算量很大,效率低。本发明从自交圈产生的角度出发,来分析偏移曲线上是否存在自交圈。从自交圈产生的机理可知,自交圈出现在曲率较大、偏移方向向内且偏移距离较大的情况下,并且其与曲线的拐弯有关。由于张力样条曲线所有的拐弯处都出现在形状点附近,所以,围绕形状点查找自交圈无疑会提高判断的效率,然而,并不是所有的拐弯处都会产生自交圈,所以首先筛除一部分无辜的形状点可以进一步节省时间。本发明提出的等距曲线的生成方法,其中包含了自交圈的判断方法。为了方便说明,在本发明的实施例中,将曲线上两个插值点,其法线的交点称为偏移极限点,由插值点指向偏移极限点的向量(称为极限向量)方向称为被限制的偏移方向。若偏移距离在极限向量长度之内,不会产生自交圈,否则会产生自交圈。所以,如图3所示,上述步骤104,判断偏移曲线上是否存在自交圈的操作,具体包括以下步骤:步骤301:根据参照曲线在参照形状点处的函数表达式,计算参照形状点对应的曲率半径;曲率半径主要是用来描述曲线上某处,曲线弯曲变化的程度,定义为曲率的倒数,曲线的曲率是指曲线上某个点的切线方向角对弧长的转动率,通过微分来定义,表明曲线偏离直线的程度。具体的,参照曲线y=f(x)上任一点的曲率公式为公式(18),那么该曲线的曲率半径即为k=|f′′(x)|(1+[f′(x)]2)3/2---(18)]]>根据公式(18)以及参照形状点对应的一阶导数和二阶导数,计算出参照形状点对应的曲率半径。步骤302:判断参照形状点在法线向量方向上的偏移距离是否均小于对应的曲率半径,若是,则转向步骤305,否则,执行步骤303;在某个参照形状点处,若偏移距离小于该点的曲率半径,不管偏移方向如何,都不会产生自交圈,不用考虑自交圈的问题。否则执行步骤303。步骤303:计算参照形状点分别对应的曲率中心和曲率中心向量;假设参照曲线的某一参照形状点为(x,y),(x0,y0)、(x1,y1)分别表示该参照形状点(x,y)对应正负解的两个偏移形状点,(xc,yc)表示该参照曲线在参照形状点(x,y)处的曲率中心,其中,(x0,y0)为沿参照曲线向外偏移的偏移形状点,(x1,y1)为沿参照曲线向内偏移的偏移形状点。所以,向量和向量是该参照形状点(x,y)的偏移向量,向量是该参照形状点(x,y)的曲率中心向量。步骤304:判断参照形状点的偏移方向与参照形状点处的曲率中心方向是否均不一致;若是,转向步骤305,否则,转向步骤306;将某一参照形状点的偏移向量与该参照形状点的曲率中心向量进行点乘,通过点乘的结果,判断出该参照形状点的曲线偏移方向与参照形状点处的曲率中心方向是否一致。若方向一致,则说明在该点处,有可能会与其他的偏移形状点相交,也即,可能会产生自交圈。若所有参照形状点处的曲线偏移方向均和对应点处的曲率中心方向不一致,则表明偏移曲线上不会存在自交圈,否则会存在至少一个自交圈。步骤305:偏移曲线上不会存在自交圈;步骤306:偏移曲线上存在至少一个自交圈。本发明实施例提供的等距曲线的生成方法,通过比较曲率半径与偏移距离的大小关系,通过判断偏移方向和曲率中心方向是否一致,在判断自交圈存在时,可以首先将不可能出现自交圈的一些偏移形状点忽略,大大的减少了计算量,提高了发现自交圈的效率。进一步的,上述实施例三的步骤304中,判断参照形状点的偏移方向与参照形状点处的曲率中心方向是否一致,具体操作为:(1)根据参照形状点和对应的偏移形状点,计算出该参照形状点的偏移向量;(2)将该参照形状点的偏移向量和参照形状点处的曲率中心向量进行点乘,得到两向量的点积;(3)若上述两向量的点积大于零,则参照形状点的偏移方向与参照形状点处的曲率中心方向一致,否则,不一致;图4为本发明等距曲线的生成方法实施例四的流程图。本发明实施例四是在实施例一至三的基础上,对查找到的自交圈进行处理的详细描述。如图4所示,本发明实施例四提供的等距曲线的生成方法,还包括:步骤401:依次将偏移曲线上的偏移形状点作为考察偏移形状点,并对该考察偏移形状点是否会产生自交圈进行考察;具体的,由于张力样条曲线是以形状点为界、分段插值的曲线,在同一个段内不会出现相交的现象,所以,自交圈一定是不同的段相交造成的。因此,在本实施例中,依次将偏移曲线上的一个偏移形状点作为考察偏移形状点,对该考察偏移形状点是否会产生自交圈进行考察。自交圈的具体查找方法,参见实施例一至三中所述的查找方法,此处不再赘述。步骤402:从远离所述考察偏移形状点的两端开始,依次向所述考察偏移形状点的方向进行查找;对考察偏移形状点进行自交圈查找时,可以从第二个偏移形状点开始遍历查找,直到倒数第二个偏移形状点为止,对每个偏移形状点作一次自交圈考察。为了节省时间,本发明实施例采用从远离考察偏移形状点的两端向该考察形状点的方向进行查找交点。步骤403:一旦发现有自交圈交点,则结束本次查找;具体的,如果在查找的过程中,一旦查找到交点立刻结束本轮查找计算,这样可省去考察自交圈嵌套的情况。步骤404:记下该自交圈交点对应的两个偏移插值点,并将自交圈交点对应的两个偏移插值点之间的所有偏移插值点去除。如果在查找的过程中,发现了自交圈交点,求出所述交点对应的两个偏移插值点的序号,并记录下来,将这两个偏移插值点之间的所有偏移插值点去除,也即,去除了偏移曲线上的自交圈,该去除自交圈的偏移曲线就是所 要求的参照曲线的等距曲线。本发明实施例四提供的等距曲线的生成方法,通过依次将偏移形状点作为考察偏移形状点进行自交圈考察,并从远离该考察偏移形状点的两端进行查找,节省了查找的时间,提高了效率。图5为本发明等距曲线的生成方法实施例五的流程图。本发明实施例五是在实施例一至四的基础上,对等距曲线的生成方法的进一步描述。如图5所示,步骤105,若偏移曲线上存在至少一个自交圈,去除所述至少一个自交圈,得到参照曲线的等距曲线,具体包括:步骤501:根据偏移形状点和偏移插值点,计算出上述至少一个自交圈的交点位置;由上述分析可知,自交圈一定是不同的段相交造成的,但是直接计算两段偏移曲线的交点很困难,为简化计算,直接利用已得到的偏移插值点进行计算,交点必在某两个相邻偏移插值点之间。具体的,首先采用简单的比较计算方法来确定自交圈的位置范围,其次再经过曲线段的近似运算,计算出自交圈交点的位置。步骤502:根据至少一个自交圈的交点位置,将交点位置之间的偏移形状点和偏移插值点均去除,并将上述至少一个自交圈的交点作为偏移曲线的插值点和形状点;根据步骤501中提供的方法求出自交圈的交点位置,交点之间的偏移形状点和偏移插值点组成了自交圈,因此,去掉自交圈的工作就是将交点位置之间的所有偏移形状点和所有偏移插值点均去除,并将自交圈的交点作为偏移插值点和偏移形状点。步骤503:将偏移曲线上剩余的偏移插值点和至少一个自交圈的交点进行连线,得到该参照曲线的等距曲线,该偏移曲线上剩余的偏移形状点作为该等距曲线的形状点。经过上述步骤的操作,即得到了间距相等、无自交圈、曲线光滑的参照曲线的等距曲线。在上述实施例五中,步骤501,根据偏移形状点和偏移插值点,计算出所述至少一个自交圈的交点位置,具体包括:首先,通过简单的比较计算,确定上述至少一个自交圈的交点所属的至 少两个形状曲线段;该形状曲线段由相邻的两个偏移形状点之间的偏移插值点组成;其次,在上述形状曲线段上,通过简单的比较计算,确定上述至少一个自交圈的交点所属的至少两个插值曲线段;该插值曲线段由相邻的两个偏移插值点组成;最后,将上述至少两条插值曲线段近似成至少两条直线段,根据所述至少两条插值曲线段上的偏移插值点,通过联立方程组解出上述至少一个自交圈的交点位置。具体的实施方式如下:图6为两条偏移曲线段的相交示意图。如图6所示,偏移曲线段c和偏移曲线段d相交于(x,y),其上的1、2、3……表示插值点。由于张力样条曲线在两形状点之间经常是单调的,因此,可采用简单的比较计算方法来确定自交圈的位置范围。参照图6,如果偏移曲线段c的每个偏移插值点都与偏移曲线段d上的偏移插值点进行比较,则计算量是O(n2),计算量巨大。因此,为了减少不必要的比较,首先检查偏移曲线段c和偏移曲线段d是否在x和y方向的范围上存在交集,检查交集只需运用比较运算便可得到结果,但是需要分别找到两段偏移曲线在x和y方向上的最大、最小值。具体为:首先比较x分量是否有交集,再比较y分量是否有交集,均有交集的情况下再计算交点。计算交点位置时,鉴于任意两个相邻偏移插值点间的距离足够短,为了简化计算,将和看作直线段,通过联立方程组即可解得交点(x,y)。具体的计算公式为公式(18)。y=k2xi+b2when(xi≡xi+1)y=k1xj+b1when(xj-1≡xj)]]>即,-k11-k21xy=b1b2others---(19)]]>其中,k1=yi+1-yixi+1-xib1=-k1xi+y0,]]>k2=yj-yj-1xj-xj-1b2=-k2xj-1+yj-1.]]>值得说明的是,本发明提出的等距曲线的生成方法,在计算自交圈的交点位置时,为了发现全局交点,可以将相邻两条偏移曲线段延伸为相邻的多条偏移曲线段来计算,并且参与计算的曲线段数越多,发现全局性交点的能力就越强,然而,这样做的代价就是计算量以小线段数量的平方级增长,而 且也可能消除一些本该有的曲线。图7为本发明等距曲线的生成方法实施例六的流程图。本发明实施例六是在实施例一至五技术方案的基础上提出的,用来解决实施例五中因将相邻两条偏移曲线段延伸为相邻多条偏移曲线段来计算而带来的计算量巨量增加,且可能改变原曲线形状的问题。具体的,如图7所示,本发明实施例六的等距曲线的生成方法,还包括:步骤701:分别依次对偏移形状点和偏移插值点进行编号,从第一个偏移形状点开始,将相邻两个偏移形状点间的距离累加,得到第一个偏移形状点和最后一个偏移形状点之间的路程;步骤702:若第一个偏移形状点和最后一个偏移形状点之间的路程大于一设定距离,将所述路程以该设定距离为标准进行分段,得到至少一段该设定距离;步骤703:在上述至少一段设定距离内,根据偏移形状点和偏移插值点,判断偏移曲线上是否存在自交圈。本发明实施例六不关心到底有几条曲线相交,而是关心偏移形状点的间距之和是否在某个范围内,具体的,通过对偏移形状点依次进行编号,并依次累加,得到偏移形状点之间的总路程。若总路程大于设定的距离,那么将总路程进行分段,并分别在每段设定距离内,采用上述实施例一至五所述的方案来判断是否存在自交圈。本发明实施例六提供的等距曲线的生成方法,通过将偏移形状点的间距之和按设定距离分段,每次计算时,只使一段设定距离内的曲线段参与计算,从而保证了该设定距离内的曲线段不会相交。采用本实施例的技术方案,不但不用担心偏移形状点过密,而且在计算的过程中,还可以给用户一个明确的指标。进一步的,本发明用同样的6个参照形状点的花样曲线(参照曲线),分别采用现有技术方案一、现有技术方案二以及本发明提供的技术方案来生成等距曲线,将得到的不同结果进行了比对。图8为采用现有技术方案一得到的等距曲线图;图9为采用现有技术方案二得到的等距曲线图;图10为采用本发明提供的技术方案得到的等距曲线图。如图8、图9和图10所示,图中最上面的一条是参照曲线,下面三条都 是偏移后的曲线,图中的大黑点表示参照曲线的参照形状点。从图8可以看出,采用现有技术方案一得到的等距曲线,等距性不好,而且左端还存在自交圈。从图9可以看出,采用现有技术方案二得到的等距曲线,等距性好,没有自交圈,但是实际上没有保留参照曲线的形状特征,由于可能过分地去除自交圈,第3、4次偏移没有形成等距曲线。从图10可以看出,采用本发明技术方案得到的等距曲线,等距性好,没有自交圈,且保留了参照曲线的特征信息,效果好。本发明实施例提供的等距曲线的生成方法,通过将参照曲线的形状点和插值点进行偏移,得到与之对应的偏移形状点和偏移插值点,通过自交圈判断方法和去除方法将由偏移形状点和偏移插值点组成的偏移曲线上存在的自交圈去除,进而得到上述参照曲线的等距曲线。采用本发明技术方案生成的等距曲线同时兼具曲线间距相等、无自交圈、曲线光滑,且保留了参照曲线特性信息的特点。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1