具体实施方式
本发明实施例根据需要建立的三维模型,确定组成需要建立的三维模型的所有二维图形,以及组成二维图形轮廓的所有二维数据点;通过预设的用于进行三维拉伸建模的变化矩阵,对所有二维图形中包含的所有二维数据点进行矩阵变换,得到用于组成三维模型的所有三角片的各个顶点;按照预设的连接顺序把需要连接到一起的顶点连接起来形成多个三角片,完成三维模型的建模。
这样与现有技术大部分建模软件在进行三维建模时,需要对软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,进而组合成需要的三维模型,建模的实现方式较为复杂相比,采用本发明实施例提供的三维拉伸建模方法,可以仅通过一个基本的二维图形,就能建立出需要的三维模型,而不需要通过软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,组合成需要的三维模型,因而使三维建模的实现方式更加的简单。
下面结合说明书附图对本发明实施例作进一步详细描述。
如图1所示,本发明实施例三维拉伸建模的方法包括:
步骤101,确定用户输入的基本二维图形的形状和基本二维图形在需要建立的三维模型中的相对位置;
步骤102,根据需要建立的三维模型的形状、确定的基本二维图形的形状和相对位置、以及组成基本二维图形轮廓的二维数据点,确定用于组成三维模型的三角片的多个顶点;
步骤103,将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。
目前,大部分建模软件在进行三维拉伸建模时,需要对软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,进而组合成需要的三维模型,建模的实现方式较为复杂。而本发明实施例提供的三维拉伸建模的方法,在进行三维建模时,可以仅通过一个基本的二维图形,就能建立出需要的三维模型,而不需要通过软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,组合成需要的三维模型,因而使三维建模的实现方式更加的简单。
实施中,本发明实施例提供的三维拉伸建模的方法,可以看作是通过二维图形沿三维空间曲线拉伸建模的方法,因而该方法能够根据需要建立的三维模型的形状、用户通过外部数据输入或者编辑器实时编辑的方式输入的基本二维图形的形状、基本二维图形在需要建立的三维模型中的相对位置、以及组成基本二维图形轮廓的二维数据点(即一组连续的二维数据点),确定用于组成三维模型的三角片的多个顶点。再按照现有的三维建模规则中顶点的连接顺序,把相应的顶点连接起来形成多个三角片,进而完成需要建立的三维模型。
例如,如图2A所示,为本发明实施例提供的标准圆筒形三维模型示意图,图2A中所示的圆筒形的三维模型可以通过对一个二维的圆形进行直线拉伸得到。因而用户可以根据需要输入建立标准圆筒形三维模型所需要的圆形(即用户输入的基本二维图形),而输入的这个圆形是图2A中在深度方向上,处于最浅位置处的圆201(即基本二维图形)。
本发明实施例提供的三维拉伸建模方法,可以确定用户输入的圆201的形状是圆形(即基本二维图形的形状),以及确定圆201与标准圆筒形的三维模型之间的相对位置,也就是从图2A正面看时,圆201位于标准圆筒形的深度最浅的离用户最近的位置处(即基本二维图形在需要建立的三维模型中的相对位置);并根据需要建立的三维模型是标准圆筒形(即三维模型的形状)、上述圆201的形状和圆形与标准圆筒形之间的相对位置、以及组成圆201的圆形轮廓的二维数据点,如图2A中的二维数据点202和二维数据点203等一系列点(即组成基本二维图形轮廓的二维数据点),确定用于组成标准圆筒形的(即三维模型)三角片的多个顶点;再按照现有的三维建模规则中顶点的连接顺序,根据需要将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。为了更清楚的说明顶点和三角片的概念,将图2A中虚线框204中的图形进行放大,下面具体介绍虚线框204中的图形。
图2A中其它部分的图形和虚线框204中的图形完全一样,现今以虚线框204中的局部放大图为例,对图2A进行说明。如图2B所示,为本发明实施例提供的标准圆筒形三维模型中局部放大示意图,其中,点203是指用户输入的圆201(即基本二维图形)上的一个二维数据点;而点205、点206和点207等各个点,都是用于组成三维模型的三角片的顶点,而将点205、点206和点207连接到一起所组成的就是一个三角片。
其中,组成三维模型的二维图形可以是任意能够进行拉伸方式建模的二维图形,例如,矩形、三角形、圆形、弧形、任意形状的曲线或者图形等,只要是能够通过拉伸建模的方式得到三维模型的二维图形都可以。用户可以通过外部数据输入或者编辑器实时编辑的方式获得用于建立三维模型的基本二维图形,而实际上用户输入的可以看作是一组连续的二维点数据,每个点用(X,Y)表示,这些连续的点数据在二维平面上表示需要进行拉伸计算的基本二维图形的形状,其中二维数据点可以用以下二维点表示:{P1(x,y),P2(x,y),P3(x,y),P4(x,y)……PN(x,y)}。而连接三角片的方式可以是任意现有的三维建模规则中能够连接三角片的方式。
实施中,在确定用于组成三维模型的三角片的多个顶点时,要先确定一条通过基本二维图形拉伸建立三维模型的拉伸曲线,再通过对基本二维图形进行矩阵变换,得到各个顶点,进而完成三维建模,下面具体进行介绍。
可选的,确定用于组成三维模型的三角片的多个顶点,包括:
根据需要建立的三维模型的形状、以及确定的基本二维图形的形状和相对位置,确定通过拉伸基本二维图形建立三维模型所需要的拉伸曲线,其中,拉伸曲线包含多个连续且位置确定的三维数据点;
也就是说,本发明实施例提供的三维拉伸建模的方法,根据需要建立的三维模型的具体形状、以及上述确定的基本二维图形的形状和相对位置,就能确定出,提供拉伸基本二维图形建立三维模型时,拉伸需要的拉伸曲线(可以是直线或者任意的曲线),而拉伸曲线实际上可以看作是多个连续的三维数据点,同时,由于三维模型的形状已知,用户输入的基本二维图形的形状,以及该二维图形与三维模型之间的相对位置也已知,因而组成拉伸曲线的三维数据点的坐标位置也可以得到。
下面还是以图2A中的图形为例,对确定组成三维模型的各个三角片顶点的过程进行详细介绍。
例如,图2A所示的标准圆筒形模型,可以通过拉伸用户输入的圆形201(即基本二维图形)建立标准圆筒形模型(即三维模型),根据需要建立的标准圆筒形模型(即三维模型)的形状、上述已经确定的圆201的形状、圆形与标准圆筒形之间的相对位置,可以确定通过拉伸圆形201(即基本二维图形)建立建立标准圆筒形模型(即三维模型)所需要的拉伸曲线,即拉伸曲线可以是图2A中标注的直线208,也可以是图2A中标注的直线209,也就是图2A中,只要是在深度方向上,在同一直线上的各个顶点组成的直线都可以作为拉伸曲线。
其中,拉伸曲线实际上可以看作是多个连续的三维数据点(即组成三角片的各个顶点),而由于三维模型的形状已知是标准圆筒形,用户输入的基本二维图形的形状已知是圆形,以及该圆形与标准圆筒形之间的相对位置(即基本二维图形在需要建立的三维模型中的相对位置)也已知,因而组成拉伸曲线的三维数据点的坐标位置也可以得到。
图2A中建立标准圆筒形模型所需要的拉伸曲线是直线,但有时候拉伸曲线也可以是弯曲的曲线。例如,如图3所示,为本发明实施例提供的弯曲的圆筒状三维模型示意图;图3中所示的弯曲的圆筒状的三维模型,可以通过对用户输入的圆形(即基本二维图形)进行曲线拉伸得到。因而确定建立标准圆筒形三维模型所需要的基本二维图形为圆形;而通过拉伸圆形(即基本二维图形)建立弯曲的圆筒状模型(即三维模型)所需要的拉伸曲线是曲线,其中该拉伸曲线由多个连续且位置确定的三维数据点组成,而由于三维模型的形状已知是弯曲的圆筒状,用户输入的基本二维图形的形状已知是圆形,以及该圆形与弯曲的圆筒之间的相对位置(即基本二维图形在需要建立的三维模型中的相对位置)也已知,因而组成拉伸曲线的三维数据点的坐标位置也可以得到。
实施中,可以通过外部数据输入或者编辑器实时编辑等方式得到一组连续的三维数据点,每个点用(X,Y,Z)表示,如用以下三维数据点表示:{P1(x,y,z),P2(x,y,z),P3(x,y,z),P4(x,y,z)……PN(x,y,z)};这些连续的数据点在三维空间中组成一条直线或者曲线或者是具有意义的图形框架(即拉伸曲线)。例如,拉伸为立方体的模型,拉伸曲线就是一条直线;拉伸为弹簧形状的模型,拉伸曲线就是螺旋状的曲线;拉伸为圆环的模型,拉伸曲线就是一个收尾闭合的圆形。
在确定出通过拉伸基本二维图形建立三维模型所需要的拉伸曲线之后,可以根据拉伸曲线的各个三维数据点,确定组成三维模型的三角片的多个顶点,下面具体进行介绍。
可选的,针对拉伸曲线上的每个三维数据点,通过该三维数据点处对应的用于建立三维模型的预设变化矩阵,对组成基本二维图形轮廓的所有二维数据点进行矩阵变换,得到用于组成三维模型的三角片的多个顶点;其中,每个三维数据点处经过矩阵变换后得到的多个顶点组成变换后的二维图形;预设变化矩阵是根据三维模型的形状,以及基本二维图形的形状和相对位置确定的。
也就是说,以拉伸曲线上的每个三维数据点处为一层的话,实际上可能每一层的图形形状都不同,例如,大小尺寸不同,或者是每一层和相邻层之间的夹角不同等;因而针对拉伸曲线上每个三维数据点处(即在P1(x,y,z),P2(x,y,z),P3(x,y,z),P4(x,y,z)……PN(x,y,z)每个三维数据点处),对应一个不同的用于建立三维模型的预设变化矩阵,通过每个三维数据点处对应的预设变化矩阵,对组成基本二维图形轮廓的所有二维数据点进行矩阵变换(每个三维数据点处的矩阵变换可以同时进行,也可以一个个进行),得到用于组成三维模型的三角片的多个顶点。而针对每个三维数据点,变换后的得到的多个顶点可以看作是在一层,即每个三维数据点处的一层中有一个变换后的二维图形;而上述的预设变化矩阵,是根据三维模型的形状,以及上述基本二维图形的形状和相对位置确定的,具体的确定方式会在后面的内容中进行详细介绍。
实施中,为了完成基本二维图形沿三维空间曲线拉伸的建模,可以根据需要拉伸曲线上每个三维数据点处对应的预设变化矩阵,将基本二维图形变换成三维模型,而预设变化矩阵又是通过其它变换矩阵得到的。
可选的,根据下列方式确定每个三维数据点处对应的预设变化矩阵:针对拉伸曲线上的每个三维数据点,根据三维模型的形状、以及基本二维图形的形状和相对位置,确定每个三维数据点处对应的用于对基本二维图形进行旋转的旋转矩阵、用于对基本二维图形进行缩放的缩放矩阵、以及用于对基本二维图形进行平移的平移矩阵;根据确定的旋转矩阵、缩放矩阵和平移矩阵,确定每个三维数据点处对应的预设变化矩阵。
实施中,在确定出拉伸曲线之后,要确定拉伸曲线上每个三维数据点处对应的变化矩阵,也就相当于可以理解为,以基本的二维图形的形状和相对位置为基准,同时根据要建立的三维模型的形状,将每个三维数据点处看作是一层,每一层的图形(即变换后的二维图形)都需要通过对组成基本二维图形轮廓的所有二维数据点进行矩阵变换得到。
也就是说,针对拉伸曲线上的每一个三维数据点,可以根据三维模型的形状、以及基本二维图形的形状和相对位置,确定能够将基本二维图形进行旋转,进而通过基本的二维图形得到该三维数据点所在层的图形的相对位置,其中相对位置是指该层的图形与基本二维图形之间的相对位置(即变换后的二维图形)的旋转矩阵;以及确定能够将基本二维图形进行缩放,进而通过基本的二维图形得到该三维数据点所在层的图形的尺寸大小(即变换后的二维图形)的缩放矩阵;以及确定能够将基本二维图形进行平移,进而通过基本的二维图形得到该三维数据点所在层的图形在坐标系中的位置(即变换后的二维图形)的平移矩阵。
在确定出拉伸曲线上的每一个三维数据点对应的旋转矩阵、缩放矩阵和平移矩阵后,还可以根据确定的旋转矩阵、缩放矩阵和平移矩阵,确定每个三维数据点处对应的预设变化矩阵。即将旋转矩阵、缩放矩阵和平移矩阵组合为一个预设变化矩阵。针对拉伸曲线上的每一个三维数据点,进行矩阵变换时,只需将基本二维图形轮廓的所有二维数据点乘以相应的变化矩阵即可。为了更加清楚的对确定预设变化矩阵的方式进行说明,下面列举一种可行的变化矩阵的公式为:
M=MR*MS*MT 公式一
其中,M是变化矩阵;MR是旋转矩阵;Ms是缩放矩阵;MT是平移矩阵。
平移矩阵MT可以用以下形式表示:
公式二
其中,Tx、Ty和Tz为平移因子。
变化矩阵M可以用以下形式表示:
公式三
其中,从M11、M12、M13一直到M44为空间变换矩阵。
实施中,应用变化矩阵M对二维图形进行矩阵变换的公式为:
公式四
即:
x′=(x×M11)+(y×M21)+(z×M31)+(1×M41)
y′=(x×M12)+(y×M22)+(z×M32)+(1×M42) 公式五
z′=(x×M13)+(y×M23)+(z×M33)+(1×M43)
其中,[x′ y′ z′ 1]表示缩放后的矩阵;[x y z 1]表示由缩放前的二维数据点构成的矩阵。
下面具体介绍旋转矩阵如何确定,可选的,根据下列方式确定每个三维数据点处对应的旋转矩阵:根据变换后的二维图形的法向量、以及该变换后的二维图形所在的三维数据点的位置处的切向量,确定法向量和切向量之间的夹角;根据确定的夹角,确定法向量和切向量之间的垂直向量,并将垂直向量作为旋转向量;根据确定的夹角和旋转向量,确定每个三维数据点处对应的旋转矩阵。
也就是说,组成三维模型的每个变换后的二维图形的法线方向的向量为预设的法向量,而针对每个变换后的二维图形,确定该变换后的二维图形经过的拉伸曲线上的三维数据点处的切向量,并确定上述法向量和切向量之间的夹角θ;根据确定的两者之间的夹角θ,确定两者之间的垂直向量,将该垂直向量作为旋转向量R;根据确定的夹角θ和旋转向量R,确定每个三维数据点处对应的用于对基本二维图形进行旋转的旋转矩阵MR。
实施中,计算拉伸曲线上每个三维数据点处的切线方向的向量。根据拉伸建模效果的需求,有些拉伸建模效果需要使拉伸曲线的路径上面的每个三维数据点处的变换后的二维图形的截面与当前的三维数据点的切线垂直,这样拉伸出来的效果更佳的平滑真实。根据拉伸直线中包含的三维数据点{P1(x,y,z),P2(x,y,z),P3(x,y,z),P4(x,y,z)……PN(x,y,z)},计算每个三维数据点的切线方向,其中,该三维数据点的切向量采用三维空间向量表示:TN(x,y,z)=PN(x,y,z)-(PN-1)(x,y,z)。这样依次计算每个三维数据点,获得一组切线数据Tangent{T1(x,y,z),T2(x,y,z),T3(x,y,z),T4(x,y,z)……TN(x,y,z)}。
计算三维拉伸曲线中包含的每个三维数据点对应二维图形的旋转矩阵。本发明实施例提供的三维拉伸建模方法,根据需要预设变换后的二维图形的法线方向为N(0,0,1),每个三维数据点的切线方向的向量为T(x,y,z)(即该二维图形所在的三维数据点处的切向量),采用向量点积N·T=cos(θ),求得N和T的夹角θ,再通过采用向量叉积N×T=R,获得向量N和T的垂直向量,将该垂直向量作为旋转向量R;并根据向量N沿向量R旋转角度θ,采用Matrix Rotation Axis(矩阵旋转轴)方法来求取三维数据点处对应的旋转矩阵MR。
下面具体介绍旋转矩阵如何确定,可选的,根据下列方式确定每个三维数据点处对应的缩放矩阵:针对拉伸曲线上的每个三维数据点,根据三维模型的形状、基本二维图形的形状和相对位置、以及该三维数据点的位置,确定该三维数据点处对应的用于组成缩放矩阵的缩放因子,以确定每个三维数据点处对应的缩放矩阵。
实施中,在确定出拉伸曲线之后,还可以确定拉伸曲线上每个三维数据点处对应的缩放矩阵,也就相当于可以理解为,以基本的二维图形的形状和相对位置为基准,同时根据要建立的三维模型的形状,将每个三维数据点处看作是一层,每一层的图形的尺寸大小(即变换后的二维图形的尺寸大小)都需要通过对组成基本二维图形轮廓的所有二维数据点进行矩阵缩放变换得到。
也就是说,针对拉伸曲线上的每一个三维数据点,可以根据三维模型的形状、以及基本二维图形的形状和相对位置,确定能够将基本二维图形进行缩放的缩放因子,即确定对基本二维图形进行缩放的缩放矩阵,进而通过基本二维图形得到该三维数据点所在层的图形的尺寸大小(即该组成该图形的各个三维数据点的坐标位置)。
同时,针对拉伸曲线中包含的每个三维数据点,缩放是将组成基本二维图形轮廓的所有二维数据点乘以该三维数据点对应的缩放矩阵,即对基本二维图形中的二维数据点进行缩放的公式为:
[x′ y′ z′ 1]=[x y z 1]*Ms 公式六
其中,[x′ y′ z′ 1]表示缩放后的矩阵;[x y z 1]表示由缩放前的二维数据点构成的矩阵;而缩放矩阵Ms可以用以下形式表示:
公式七
其中,Sx、Sy和Sz为缩放因子;由于二维数据点用PN(x,y)表示,因此,公式一中的z取1。
实施中,可以根据三维模型的形状,以及三维数据点的位置,确定需要缩放的倍数(即缩放因子)等,如可以通过改变缩放因子的数值,将基本二维图形缩小0.5倍或者放大1.4倍等不同的缩放倍数;也可以在拉伸路径为曲线的各个三维数据点处,对基本二维图形进行缩放,即可以根据需要对三维模型的某一部分进行平滑缩放。
例如,如图4所示,为本发明实施例提供的对圆形进行直线拉伸和缩放的三维模型示意图;图4中所示的三维模型,可以通过对二维的圆形进行直线拉伸,并对三维模型不同的部分进行缩放得到。实施中,针对拉伸曲线上的每个三维数据点,对组成基本二维图形轮廓的所有二维数据点进行矩阵缩放变换,不同位置的三维数据点,进行缩放的倍数不同,三维模型从左至右对基本二维图形进行缩放,且缩放的倍数呈逐渐增大,再逐渐减小的趋势,因而三维模型的直径逐渐变大,之后再逐渐变小,平滑且均匀的变粗或者变细。
又例如,如图5所示,为本发明实施例提供的对圆形进行曲线拉伸和缩放的三维模型示意图;图5中所示的三维模型,可以通过对二维的圆形进行曲线拉伸,并对三维模型不同的部分进行缩放得到。实施中,针对拉伸曲线上的每个三维数据点,对组成基本二维图形轮廓的所有二维数据点进行矩阵缩放变换,不同位置的三维数据点,进行缩放的倍数不同,三维模型从左至右对二维图形进行缩放,且缩放的倍数呈逐渐增大,再逐渐减小的趋势,因而三维模型的直径逐渐变大,之后再逐渐变小,平滑且均匀的变粗或者变细。
下面具体介绍平移矩阵如何确定,可选的,根据下列方式确定每个三维数据点处对应的平移矩阵:针对拉伸曲线上的每个三维数据点,根据三维模型的形状、基本二维图形的形状和相对位置、以及该三维数据点的位置,确定用于将基本二维图形平移到该三维数据点处的平移矩阵,以确定每个三维数据点处对应的平移矩阵。
实施中,在确定出拉伸曲线之后,还可以确定拉伸曲线上每个三维数据点处对应的平移矩阵,也就相当于可以理解为,以基本的二维图形的形状和相对位置为基准,同时根据要建立的三维模型的形状,将每个三维数据点处看作是一层,每一层的图形在坐标系中的位置(即变换后的二维图形在坐标系中的位置)都需要通过对组成基本二维图形轮廓的所有二维数据点进行矩阵平移变换得到。
也就是说,针对拉伸曲线上的每一个三维数据点,可以根据三维模型的形状、以及基本二维图形的形状和相对位置,确定用于将基本二维图形平移到该三维数据点处的平移矩阵,进而通过基本二维图形得到该三维数据点所在层的图形在坐标系中的位置(即变换后的二维图形在坐标系中的位置)。
而上述图2A~图5中列举的三维模型的例子,只是为了对本发明实施例进行更详细的举例说明,并不用于限定本发明实施例能够建立的三维模型的类型。
为了更加清楚的对本发明实施例提供的三维拉伸建模的方法进行介绍,下面以三维拉伸建模的方法的整体流程图为例进行说明。如图6所示,为本发明实施例提供的三维拉伸建模的方法的整体流程示意图,该整体流程包括:
步骤601,确定用户输入的基本二维图形的形状和基本二维图形在需要建立的三维模型中的相对位置;
步骤602,根据需要建立的三维模型的形状、以及确定的基本二维图形的形状和相对位置,确定通过拉伸基本二维图形建立三维模型所需要的拉伸曲线,其中,拉伸曲线包含多个连续且位置确定的三维数据点;
步骤603,针对拉伸曲线上的每个三维数据点,通过该三维数据点处对应的用于建立三维模型的预设变化矩阵,对组成基本二维图形轮廓的所有二维数据点进行矩阵变换,得到用于组成三维模型的三角片的多个顶点;
步骤604,将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。
基于同一发明构思,本发明实施例中还提供了一种三维拉伸建模的设备,由于图7的设备对应的方法为本发明实施例一种三维拉伸建模的方法,因此本发明实施例三维拉伸建模的设备的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,本发明实施例提供的一种三维拉伸建模的设备,该设备包括:第一确定模块701、第二确定模块702和连接模块703;
第一确定模块701,用于确定用户输入的基本二维图形的形状和基本二维图形在需要建立的三维模型中的相对位置;
第二确定模块702,用于根据需要建立的三维模型的形状、确定的基本二维图形的形状和相对位置、以及组成基本二维图形轮廓的二维数据点,确定用于组成三维模型的三角片的多个顶点;
连接模块703,用于将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。
可选的,第二确定模块702具体用于:
根据需要建立的三维模型的形状、以及确定的基本二维图形的形状和相对位置,确定通过拉伸基本二维图形建立三维模型所需要的拉伸曲线,其中,拉伸曲线包含多个连续且位置确定的三维数据点;针对拉伸曲线上的每个三维数据点,通过该三维数据点处对应的用于建立三维模型的预设变化矩阵,对组成基本二维图形轮廓的所有二维数据点进行矩阵变换,得到用于组成三维模型的三角片的多个顶点;其中,每个三维数据点处经过矩阵变换后得到的多个顶点组成变换后的二维图形;预设变化矩阵是根据三维模型的形状,以及基本二维图形的形状和相对位置确定的。
可选的,第二确定模块702根据下列方式确定每个三维数据点处对应的预设变化矩阵:
针对拉伸曲线上的每个三维数据点,根据三维模型的形状、以及基本二维图形的形状和相对位置,确定每个三维数据点处对应的用于对基本二维图形进行旋转的旋转矩阵、用于对基本二维图形进行缩放的缩放矩阵、以及用于对基本二维图形进行平移的平移矩阵;根据确定的旋转矩阵、缩放矩阵和平移矩阵,确定每个三维数据点处对应的预设变化矩阵。
可选的,第二确定模块702根据下列方式确定每个三维数据点处对应的旋转矩阵:
根据变换后的二维图形的法向量、以及该变换后的二维图形所在的三维数据点的位置处的切向量,确定法向量和切向量之间的夹角;根据确定的夹角,确定法向量和切向量之间的垂直向量,并将垂直向量作为旋转向量;根据确定的夹角和旋转向量,确定每个三维数据点处对应的旋转矩阵。
可选的,第二确定模块702根据下列方式确定每个三维数据点处对应的缩放矩阵:
针对拉伸曲线上的每个三维数据点,根据三维模型的形状、基本二维图形的形状和相对位置、以及该三维数据点的位置,确定该三维数据点处对应的用于组成缩放矩阵的缩放因子,以确定每个三维数据点处对应的缩放矩阵。
可选的,第二确定模块702根据下列方式确定每个三维数据点处对应的平移矩阵:
针对拉伸曲线上的每个三维数据点,根据三维模型的形状、基本二维图形的形状和相对位置、以及该三维数据点的位置,确定用于将基本二维图形平移到该三维数据点处的平移矩阵,以确定每个三维数据点处对应的平移矩阵。
从上述内容可以看出:由于本发明实施例提供的三维拉伸建模方法,可以根据需要建立的三维模型的形状、用户输入的基本二维图形的形状和所述基本二维图形在需要建立的三维模型中的相对位置、以及组成所述基本二维图形轮廓的二维数据点,建立需要的三维模型;也就是说,该三维拉伸建模的方法,可以仅通过一个基本的二维图形,就能建立出需要的三维模型,而不需要通过软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,组合成需要的三维模型,因而使建模的实现方式更加的简单。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。