发明内容
本发明主要解决的技术问题是提供一种获取曲线控制顶点、几何形状的方法及图形处理装置,能够实现较简易地获得控制顶点,解决三次非均匀有理B样条曲线的反算问题。
为解决上述技术问题,本发明的一方面是:提供一种获取三次非均匀有理B样条曲线控制顶点的方法,包括:根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点矢量;根据三次非均匀有理B样条曲线的型值点、节点矢量以及非均匀有理B样条曲线的曲线方程获得三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组;根据三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点。
其中,根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点矢量的步骤具体包括:
根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点,具体如下式所示:
其中,qj、qj+1为型值点,ui+3为节点;
根据三次非均匀有理B样条曲线的节点ui+3获得节点矢量,具体如下式所示:
U=[u0,u1,...,un,un+1,un+2,un+3,un+4] (2)
其中,U为节点矢量,u0=u1=u2=u3=0,un+1=un+2=un+3=un+4=1,型值点的数量为m+1,型值点具体包括:q0,q1,...,qm,控制顶点的数量为n+1,控制顶点具体包括:d0,d1,...,dn,n=m+2。
其中,根据三次非均匀有理B样条曲线的型值点、节点矢量以及非均匀有理B样条曲线的曲线方程获得三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组的步骤具体包括:
将型值点qi(i=1,...,m-1)代入非均匀有理B样条曲线的曲线方程(3)获得方程组(4),曲线方程(3)以及方程组(4)分别如下所示:
曲线方程(3):
方程组(4):
其中,Ri,k(u)为有理基函数,Ni,k(u)为B样条基函数,di为控制顶点,ωi(i=0,1,...,n)为di对应的三次非均匀有理B样条曲线预设的权因子,k表示非均匀有理B样条的阶数,k=3;
根据方程组(4)以及有理基函数Ri,k(u)与B样条基函数的关系式(5)获得方程组(6),关系式(5)以及方程组(6)分别如下所示:
关系式(5):
方程组(6):
其中,
根据方程组(6)以及节点矢量U与B样条基函数Ni,k(u)的关系式(7)获得方程组(8),关系式(7)以及方程组(8)分别如下所示:
关系式(7):
方程组(8):
其中,ai,bi,ci,gi的值具体如下式所示:
i=2,3,...,n-2;
根据方程组(8)以及曲线方程(3)参数u的首尾端点的边界条件方程组(9)获得控制顶点di与型值点qi之间的关系方程组(10),边界条件方程组(9)以及关系方程组(10)分别如下所示:
边界条件方程组(9):
其中,p′(0)、p′(1)分别表示p(u)的一阶导数p′(u)在首尾端点处u=0,u=1的取值;
关系方程组(10):
其中,
其中,根据三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点的步骤具体包括:
根据三次非均匀有理B样条曲线的控制顶点di与型值点qi之间的关系方程组(10)利用追赶法获得三次非均匀有理B样条曲线预设的权因子ωi与三次非均匀有理B样条曲线的控制顶点di构成的矢量,具体如下式所示:
Di=ωidi,(i=0,1,...,n) (11)
其中,Di为权因子ωi与控制顶点di构成的矢量;
根据权因子ωi与控制顶点di构成的矢量Di以及权因子ωi获得三次非均匀有理B样条曲线的控制顶点di。
为解决上述技术问题,本发明的另一方面是:提供一种获取几何形状的方法,包括:根据三次非均匀有理B样条曲线的型值点以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点;根据控制顶点以及权因子获得非均匀有理B样条曲线的曲线方程;根据非均匀有理B样条曲线的曲线方程获得预定的几何形状。
为解决上述技术问题,本发明的又一方面是:提供一种图形处理装置,包括:节点矢量获取模块,用于根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点矢量;关系方程组获取模块,用于根据三次非均匀有理B样条曲线的型值点、节点矢量以及非均匀有理B样条曲线的曲线方程获得三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组;控制顶点获取模块,用于根据三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点。
其中,装置包括图形生成模块,用于根据非均匀有理B样条曲线的曲线方程获得预定的几何形状。
其中,装置包括存储模块,用于保存预定的几何形状相应的图像文件,以进行后续预定的几何形状的工件加工处理。
本发明的有益效果是:区别于现有技术的情况,本发明根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点矢量;进一步根据三次非均匀有理B样条曲线的型值点、节点矢量以及非均匀有理B样条曲线的曲线方程获得三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组;最后根据三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点。通过上述方式,本发明能够实现较简易地获得控制顶点,解决三次非均匀有理B样条曲线的反算问题。
具体实施方式
下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,均属于本发明保护的范围。
请参阅图1,本发明获取三次非均匀有理B样条曲线控制顶点的方法一实施方式包括:
步骤S101:根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点矢量;
根据三次非均匀有理B样条曲线(Non-Uniform Rational B-Spline,NURBS)的型值点获得三次非均匀有理B样条曲线的节点矢量。NURBS曲线在B样条曲线的基础上引入了权因子与分母,为B样条曲线的扩展。型值点为通过测量或计算得到的曲线或曲面上描述曲线或曲面几何形状的数据点。
步骤S102:根据三次非均匀有理B样条曲线的型值点、节点矢量以及曲线方程获得控制顶点与型值点之间的关系方程组;
根据三次非均匀有理B样条曲线的型值点、步骤S101获得的节点矢量、非均匀有理B样条曲线的曲线方程获得三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组。
步骤S103:根据控制顶点与型值点之间的关系方程组以及权因子获得三次非均匀有理B样条曲线的控制顶点。
根据步骤S102获得的三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点。
请参阅图2,本发明获取三次非均匀有理B样条曲线控制顶点的方法一实施方式中根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点矢量具体包括以下子步骤:
子步骤S1011:根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点;
根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点。一条k次NURBS曲线的有理分式形式的曲线方程如下式所示:
将上式进一步进行变换即可获得NURBS曲线的有理基函数形式的曲线方程,如下式所示:
其中,Ni,k(u)的双下标中第一个下标i表示序号,第二个下标k表示次数,比如k=3表示三次非均匀有理B样条。Ni,k(u)的具体定义如下式所示:
上述公式为德布尔-考克斯递推公式,
为规定定义的一个等式。上述递推公式表明,为了确定第i个B样条基函数N
i,k(u),需要用到u
i,u
i+1,...,u
i+k+1共k+2个节点。区间[u
i,u
i+k+1]称为N
i,k(u)的支撑区间。NURBS曲线方程中相应n+1个控制顶点d
i(i=0,1,...,n),需要利用到n+1个B样条基函数N
i,k(u)(i=0,1,...,n)。所有支撑区间包含节点的并集定义了节点矢量U=[u
0,u
1,....,u
n+k+1]。本实施方式中,以k=3的情况进行讨论,即对三次非均匀有理B样条曲线进行讨论。利用积累弦长参数法获得节点,具体如下式所示:
其中,qj、qj+1为型值点,ui+3为节点。
子步骤S1012:根据三次非均匀有理B样条曲线的节点获得节点矢量。
根据子步骤S1011获得的三次非均匀有理B样条曲线的节点ui+3进一步获得节点矢量,具体如下式所示:
U=[u0,u1,...,un,un+1,un+2,un+3,un+4] (2)
其中,U为节点矢量,u0=u1=u2=u3=0,un+1=un+2=un+3=un+4=1,型值点的数量为m+1,型值点具体包括:q0,q1,...,qm,控制顶点的数量为n+1,控制顶点具体包括:d0,d1,...,dn,n=m+2。
请参阅图3,本发明获取三次非均匀有理B样条曲线控制顶点的方法一实施方式中根据三次非均匀有理B样条曲线的型值点、节点矢量以及曲线方程获得控制顶点与型值点之间的关系方程组具体包括以下子步骤:
子步骤S1021:将型值点代入非均匀有理B样条曲线的曲线方程(3)获得方程组(4);
将型值点qi(i=1,...,m-1)代入非均匀有理B样条曲线的曲线方程(3)获得方程组(4),曲线方程(3)以及方程组(4)分别如下所示:
非均匀有理B样条曲线的曲线方程(3):
其中,R
i,k(u)为有理基函数,N
i,k(u)为B样条基函数,d
i为控制顶点,ω
i(i=0,1,...,n)为d
i对应的三次非均匀有理B样条曲线预设的权因子,k表示非均匀有理B样条的阶数,本实施方式中k=3,上述方程组(3)即对应为三次非均匀有理B样条曲线的曲线方程。在其他实施方式中当k取其它数值时,即表示对应的k次非均匀有理B样条曲线的曲线方程,例如当k=2时,上述方程组(3)即对应为二次非均匀有理B样条曲线的曲线方程。上述子步骤S1011中B样条基函数的具体定义可知,在参数u轴上任意一点u∈[u
i,u
i+1]处,最多有k+1个非零的B样条基函数N
j,k(u)(j=i-k,i-k+1,...,i),其它B样条基函数在该处均为0。即当分段B样条曲线参数u∈[u
i,u
i+1]时,该分段曲线的定义域为[u
i-k,u
i+1]。例如,对于k=3,在u∈[u
i,u
i+1]时,只有N
i-3,3(u),N
i-2,3(u),N
i-1,3(u),N
i,3(u)非零。因此,根据B样条曲线方程
可知该段曲线仅与控制顶点d
j(j=i-k,i-k+1,...,i)有关,而有理基函数R
i,k(u)与B样条基函数N
i,k(u)对应,将型值点q
i(i=1,...,m-1)代入上述方程组(3)即可获得方程组(4)。
方程组(4):
其中,n=m+2,对于首尾型值点q0、qm与首尾控制顶点d0、dn之间的关系在下述的子步骤S1024中进行说明。
子步骤S1022:根据方程组(4)以及有理基函数与B样条基函数的关系式(5)获得方程组(6);
根据子步骤S1021获得的方程组(4)以及有理基函数Ri,k(u)与B样条基函数的关系式(5)进一步获得方程组(6),关系式(5)以及方程组(6)分别如下所示:
有理基函数Ri,k(u)与B样条基函数的关系式(5):
方程组(6):
其中,
j=1,2,...n-3,h
j的矩阵形式具体如下所示:
子步骤S1023:根据方程组(6)以及节点矢量与B样条基函数的关系式(7)获得方程组(8);
根据子步骤S1022获得的方程组(6)以及节点矢量U与B样条基函数Ni,k(u)的关系式(7)进一步获得方程组(8),关系式(7)以及方程组(8)分别如下所示:
节点矢量U与B样条基函数Ni,k(u)的关系式(7):
方程组(8):
其中,ai,bi,ci,gi的值具体如下式所示:
i=2,3,...,n-2,fi的矩阵形式具体如下所示:
上述针对节点矢量U=[u
0,u
1,...,u
n,u
n+1,u
n+2,u
n+3,u
n+4]引入标记
代替u
i+1-u等较为复杂的表达式,从而使方程组(6)转换获得的方程组(8)的形式变得简洁,减少a
i,b
i,c
i,g
i等系数参数的计算量,从而使后续获得控制顶点的计算过程变得简易。
子步骤S1024:根据方程组(8)以及曲线方程(3)参数的首尾端点的边界条件方程组(9)获得控制顶点与型值点之间的关系方程组(10)。
上述方程组(8)中含有n-1个未知数(控制顶点),而方程的个数只为n-3个,不能获得所有未知控制顶点的值,因此需要补充两个方程才能获得所有控制顶点的值。此处补充两个边界条件方程,两个边界条件为NURBS曲线参数u首尾两个端点0、1的切矢量,进一步根据曲线方程(3)参数u的首尾端点的边界条件方程组(9)以及子步骤S1023获得的方程组(8)进一步获得控制顶点di与型值点qi之间的关系方程组(10),其中,边界条件方程组(9)以及关系方程组(10)分别如下所示:
边界条件方程组具体如下方程组(9)所示:
p′(0)、p′(1)分别表示p(u)的一阶导数p′(u)在首尾端点处u=0,u=1的取值。
根据上述方程组(8)以及方程组(9)进一步获得关系方程组(10):
其中,
上述d0=q0,dn=qm为根据首尾型值点q0、qm与首尾控制顶点d0、dn重合而获得。
请参阅图4,本发明获取三次非均匀有理B样条曲线控制顶点的方法一实施方式中根据控制顶点与型值点之间的关系方程组以及权因子获得三次非均匀有理B样条曲线的控制顶点具体包括以下子步骤:
子步骤S1031:根据三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组(10)利用追赶法获得权因子与控制顶点构成的矢量;
上述子步骤S1024获得的关系方程组(10)为对角占优的三对角线方程组,根据关系方程组(10)利用追赶法即可获得三次非均匀有理B样条曲线预设的权因子ωi与三次非均匀有理B样条曲线的控制顶点di构成的矢量,具体如下式所示:
Di=ωidi,(i=0,1,...,n) (11)
其中,Di为权因子ωi与控制顶点di构成的矢量。在其他实施方式中,也可利用LU分解法等其他方法获得矢量Di的值,此处不作过多限制。
子步骤S1032:根据权因子与控制顶点构成的矢量以及权因子获得三次非均匀有理B样条曲线的控制顶点。
根据上述子步骤S1031获得的权因子ωi与控制顶点di构成的矢量Di以及权因子ωi即可获得三次非均匀有理B样条曲线的控制顶点di,即利用矢量D中的值对应除以权因子ωi的值即可获得对应的控制顶点di的值,通过关系方程组(10)能够实现较简易地获取NURBS曲线的控制顶点di。本实施方式获得的控制顶点di为三次非均匀有理B样条曲线(k=3)对应的控制顶点。在其他实施方式中,利用k(k≠3)次非均匀有理B样条曲线的曲线方程即k(k≠3)值对应的曲线方程(3),根据本实施方式的流程步骤同理亦可获得对应的控制顶点与型值点之间的关系方程组,进而获得对应的k(k≠3)次非均匀有理B样条曲线的控制顶点,例如获得二次非均匀有理B样条曲线(k=2)、四次非均匀有理B样条曲线(k=4)等,其中控制顶点与型值点之间的关系方程组中与节点、权因子等有关的系数矩阵相应k(k≠3)的值而改变。
可以理解,本发明获取三次非均匀有理B样条曲线控制顶点的方法一实施方式根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点矢量;进一步根据三次非均匀有理B样条曲线的型值点、节点矢量以及非均匀有理B样条曲线的曲线方程获得三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组;最后根据三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点,能够实现较简易地获得控制顶点,解决三次非均匀有理B样条曲线的反算问题。
请参阅图5,本发明获取几何形状的方法一实施方式包括:
步骤S201:根据三次非均匀有理B样条曲线的型值点以及权因子获得控制顶点;
根据三次非均匀有理B样条曲线的型值点qi以及三次非均匀有理B样条曲线预设的权因子ωi获得三次非均匀有理B样条曲线的控制顶点di,控制顶点di具体的获取方法可见上述实施方式,此处不再赘述。
步骤S202:根据控制顶点以及权因子获得非均匀有理B样条曲线的曲线方程;
将步骤S201获得的控制顶点di以及权因子ωi对应代入非均匀有理B样条曲线的曲线方程中而获得含有参数u的方程,曲线方程具体可见上述实施方式中的方程(3)。
步骤S203:根据非均匀有理B样条曲线的曲线方程获得预定的几何形状。
在工业计算机辅助设计/制造(Computer Aided Design/Manufacturing,CAD/CAM)系统中,利用非均匀有理B样条曲线的曲线方程获得预设的几何形状,几何形状例如为飞机的机翼、成型模具型腔、汽车流线型覆盖件等。当调整权因子、控制顶点时,即可实现对几何形状的调整,为设计、调整各种各样的形状提供了极大的可行性。
请参阅图6,本发明图形处理装置一实施方式包括:
节点矢量获取模块301,用于根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点矢量。
关系方程组获取模块302,用于根据三次非均匀有理B样条曲线的型值点、节点矢量获取模块301获得的节点矢量以及非均匀有理B样条曲线的曲线方程进一步获得三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组。
控制顶点获取模块303,用于根据关系方程组获取模块302获得的三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点。
此外,图形处理装置还包括:图形生成模块,用于根据非均匀有理B样条曲线的曲线方程获得预定的几何形状;存储模块,用于保存图形生成模块获得的预定的几何形状相应的图像文件,以进行后续预定的几何形状的工件加工处理。
下面对节点矢量获取模块301、关系方程组获取模块302以及控制顶点获取模块303进行具体描述说明。
节点矢量获取模块301具体用于根据三次非均匀有理B样条曲线的型值点获得三次非均匀有理B样条曲线的节点,具体如下式所示:
其中,qj、qj+1为型值点,ui+3为节点。
节点矢量获取模块301还用于根据三次非均匀有理B样条曲线的节点ui+3获得节点矢量,具体如下式所示:
U=[u0,u1,...,un,un+1,un+2,un+3,un+4] (2)
其中,U为节点矢量,u0=u1=u2=u3=0,un+1=un+2=un+3=un+4=1,型值点的数量为m+1,型值点具体包括:q0,q1,...,qm,控制顶点的数量为n+1,控制顶点具体包括:d0,d1,...,dn,n=m+2。
关系方程组获取模块302具体用于将型值点qi(i=1,...,m-1)代入非均匀有理B样条曲线的曲线方程(3)获得方程组(4),曲线方程(3)以及方程组(4)分别如下所示:
非均匀有理B样条曲线的曲线方程(3):
方程组(4):
其中,Ri,k(u)为有理基函数,Ni,k(u)为B样条基函数,di为控制顶点,ωi(i=0,1,...,n)为di对应的三次非均匀有理B样条曲线预设的权因子,k表示非均匀有理B样条的阶数,k=3。
关系方程组获取模块302还用于根据方程组(4)以及有理基函数Ri,k(u)与B样条基函数的关系式(5)获得方程组(6),关系式(5)以及方程组(6)分别如下所示:
关系式(5):
方程组(6):
其中,
j=1,2,...n-3,h
j的矩阵形式具体如下所示:
关系方程组获取模块302还用于根据方程组(6)以及节点矢量获取模块301获得的节点矢量U与B样条基函数Ni,k(u)的关系式(7)进一步获得方程组(8),关系式(7)以及方程组(8)分别如下所示:
关系式(7):
方程组(8):
其中,ai,bi,ci,gi的值具体如下式所示:
i=2,3,...,n-2,fi的矩阵形式具体如下所示:
上述针对节点矢量U=[u
0,u
1,...,u
n,u
n+1,u
n+2,u
n+3,u
n+4]引入标记
代替u
i+1-u等较为复杂的表达式,从而使方程组(6)转换获得的方程组(8)的形式变得简洁,减少a
i,b
i,c
i,g
i等系数参数的计算量,从而使后续获得控制顶点的计算过程变得简易。
关系方程组获取模块302还用于根据方程组(8)以及曲线方程(3)参数u的首尾端点的边界条件方程组(9)获得控制顶点di与型值点qi之间的关系方程组(10),边界条件方程组(9)以及关系方程组(10)分别如下所示:
边界条件方程组(9):
p′(0)、p′(1)分别表示p(u)的一阶导数p′(u)在首尾端点处u=0,u=1的取值。
关系方程组(10):
其中,
上述d0=q0,dn=qm为根据首尾型值点q0、qm与首尾控制顶点d0、dn重合而获得。
控制顶点获取模块303具体用于根据关系方程组获取模块302获得的三次非均匀有理B样条曲线的控制顶点di与型值点qi之间的关系方程组(10)利用追赶法进一步获得三次非均匀有理B样条曲线预设的权因子ωi与三次非均匀有理B样条曲线的控制顶点di构成的矢量,具体如下式所示:
Di=ωidi,(i=0,1,...,n) (11)
其中,Di为权因子ωi与控制顶点di构成的矢量。在其他实施方式中,也可利用LU分解法等其他方法获得矢量Di的值,此处不作过多限制。
控制顶点获取模块303还用于根据权因子ωi与控制顶点di构成的矢量Di以及权因子ωi获得三次非均匀有理B样条曲线的控制顶点di,即利用矢量Di中的值对应除以权因子ωi的值即可获得对应的控制顶点di的值,通过关系方程组(10)能够实现较简易地获取NURBS曲线的控制顶点di。本实施方式获得的控制顶点di为三次非均匀有理B样条曲线(k=3)对应的控制顶点。在其他实施方式中,利用k(k≠3)次非均匀有理B样条曲线的曲线方程即k(k≠3)值对应的曲线方程(3),根据本实施方式的流程步骤同理亦可获得对应的控制顶点与型值点之间的关系方程组,进而获得对应的k(k≠3)次非均匀有理B样条曲线的控制顶点,例如获得二次非均匀有理B样条曲线(k=2)、四次非均匀有理B样条曲线(k=4)等,其中控制顶点与型值点之间的关系方程组中与节点、权因子等有关的系数矩阵相应k(k≠3)的值而改变。
可以理解,本发明图形处理装置一实施方式通过节点矢量获取模块301根据非均匀有理B样条曲线的型值点获得非均匀有理B样条曲线的节点矢量;进一步通过关系方程组获取模块302根据三次非均匀有理B样条曲线的型值点、节点矢量以及非均匀有理B样条曲线的曲线方程获得三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组;最后通过控制顶点获取模块303根据三次非均匀有理B样条曲线的控制顶点与型值点之间的关系方程组以及三次非均匀有理B样条曲线预设的权因子获得三次非均匀有理B样条曲线的控制顶点,能够实现较简易地获得控制顶点,解决三次非均匀有理B样条曲线的反算问题。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。