CN104915993B - 一种三维拉伸建模的方法和设备 - Google Patents

一种三维拉伸建模的方法和设备 Download PDF

Info

Publication number
CN104915993B
CN104915993B CN201510370161.4A CN201510370161A CN104915993B CN 104915993 B CN104915993 B CN 104915993B CN 201510370161 A CN201510370161 A CN 201510370161A CN 104915993 B CN104915993 B CN 104915993B
Authority
CN
China
Prior art keywords
dimensional
data points
primarily
threedimensional model
dimensional data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510370161.4A
Other languages
English (en)
Other versions
CN104915993A (zh
Inventor
程斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aidipu Technology Co., Ltd
Original Assignee
Edip (beijing) Cultural Polytron Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Edip (beijing) Cultural Polytron Technologies Inc filed Critical Edip (beijing) Cultural Polytron Technologies Inc
Priority to CN201510370161.4A priority Critical patent/CN104915993B/zh
Publication of CN104915993A publication Critical patent/CN104915993A/zh
Application granted granted Critical
Publication of CN104915993B publication Critical patent/CN104915993B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例涉及一种三维拉伸建模的方法和设备,用以解决现有技术中大部分建模软件在进行建模时,建模的实现方式较为复杂的问题。本发明的方法包括:确定用户输入的基本二维图形的形状和基本二维图形在需要建立的三维模型中的相对位置;根据需要建立的三维模型的形状、基本二维图形的形状和相对位置、以及组成基本二维图形轮廓的二维数据点,确定三角片的多个顶点;将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。由于该三维拉伸建模的方法,可以仅通过一个基本的二维图形,就能建立出需要的三维模型,不需要通过软件中预设的一些基本的三维模型组合成需要的三维模型,因而使三维拉伸建模的实现方式更加的简单。

Description

一种三维拉伸建模的方法和设备
技术领域
本发明涉及三维建模领域,特别涉及一种三维拉伸建模的方法和设备。
背景技术
在三维场景中,所有的三维图元都可以拆分成基本的图形结构,比如一个圆柱体可以拆分为两个圆盘和一个圆形的曲面。而每一个基本的图形结构又可以拆分成一个个三角面。
在大部分三维建模的软件中,基本都会包含很多的基本模型结构,其中包括二维模型(如圆盘、矩形、曲面)和三维模型(如球体、长方体、圆柱体)两大类,然后对这些基本的三维模型进行缩放、拼接或者合并等操作,进而组合成各种三维模型,建模的实现方式较为复杂。对于这种建模方式基本上可以完成大部分的建模工作,但是操作起来很不方便,需要调整各个图形的参数和位置属性,然后将各个图形进行合并,这样就需要建立各种尺寸的基本模型,比如建造一个可乐瓶子的模型,为了达到截面平滑的效果,需要建立很多个不同直径的圆柱体,然后拼接成为瓶子的形状,这样的建模方式使得建模的复杂度成倍的增加。
综上所述,目前,大部分建模软件在进行三维建模时,需要对软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,进而组合成需要的三维模型,建模的实现方式较为复杂。
发明内容
本发明提供一种三维拉伸建模的方法和设备,用以解决现有技术中存在的大部分建模软件在进行三维建模时,需要对软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,进而组合成需要的三维模型,建模的实现方式较为复杂的问题。
基于上述问题,本发明实施例提供的一种三维拉伸建模的方法,包括:
确定用户输入的基本二维图形的形状和所述基本二维图形在需要建立的三维模型中的相对位置;
根据需要建立的三维模型的形状、确定的所述基本二维图形的形状和相对位置、以及组成所述基本二维图形轮廓的二维数据点,确定用于组成三维模型的三角片的多个顶点;
将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。
由于本发明实施例提供的三维拉伸建模方法,可以根据需要建立的三维模型的形状、用户输入的基本二维图形的形状和所述基本二维图形在需要建立的三维模型中的相对位置、以及组成所述基本二维图形轮廓的二维数据点,建立需要的三维模型;也就是说,该三维拉伸建模的方法,可以仅通过一个基本的二维图形,就能建立出需要的三维模型,而不需要通过软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,组合成需要的三维模型,因而使三维建模的实现方式更加的简单。
本发明实施例提供的一种三维拉伸建模的设备,该设备包括:
第一确定模块,用于确定用户输入的基本二维图形的形状和所述基本二维图形在需要建立的三维模型中的相对位置;
第二确定模块,用于根据需要建立的三维模型的形状、确定的所述基本二维图形的形状和相对位置、以及组成所述基本二维图形轮廓的二维数据点,确定用于组成三维模型的三角片的多个顶点;
连接模块,用于将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。
由于本发明实施例提供的三维拉伸建模设备,可以通过第一确定模块确定用户输入的基本二维图形的形状和所述基本二维图形在需要建立的三维模型中的相对位置,并通过第二确定模块根据需要建立的三维模型的形状、所述基本二维图形的形状和相对位置、以及组成所述基本二维图形轮廓的二维数据点,确定用于组成三维模型的三角片的多个顶点,进而再通过连接模块,将确定的所有需要连接起来的顶点进行连接,形成多个三角片,建立需要的三维模型;也就是说,该三维拉伸建模的设备,可以仅通过一个基本的二维图形,就能建立出需要的三维模型,而不需要通过软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,组合成需要的三维模型,因而使三维建模的实现方式更加的简单。
附图说明
图1为本发明实施例提供的三维拉伸建模的方法流程示意图;
图2A为本发明实施例提供的标准圆筒形三维模型示意图;
图2B为本发明实施例提供的标准圆筒形三维模型中局部放大示意图;
图3为本发明实施例提供的弯曲的圆筒状三维模型示意图;
图4为本发明实施例提供的对圆形进行直线拉伸和缩放的三维模型示意图;
图5为本发明实施例提供的对圆形进行曲线拉伸和缩放的三维模型示意图;
图6为本发明实施例提供的三维拉伸建模的方法的总体实现流程图;
图7为本发明实施例提供的三维拉伸建模的设备的结构示意图。
具体实施方式
本发明实施例根据需要建立的三维模型,确定组成需要建立的三维模型的所有二维图形,以及组成二维图形轮廓的所有二维数据点;通过预设的用于进行三维拉伸建模的变化矩阵,对所有二维图形中包含的所有二维数据点进行矩阵变换,得到用于组成三维模型的所有三角片的各个顶点;按照预设的连接顺序把需要连接到一起的顶点连接起来形成多个三角片,完成三维模型的建模。
这样与现有技术大部分建模软件在进行三维建模时,需要对软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,进而组合成需要的三维模型,建模的实现方式较为复杂相比,采用本发明实施例提供的三维拉伸建模方法,可以仅通过一个基本的二维图形,就能建立出需要的三维模型,而不需要通过软件中预设的一些基本的三维模型进行缩放、拼接或者合并等操作,组合成需要的三维模型,因而使三维建模的实现方式更加的简单。
下面结合说明书附图对本发明实施例作进一步详细描述。
如图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、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种三维拉伸建模的方法,其特征在于,该方法包括:
确定用户输入的基本二维图形的形状和所述基本二维图形在需要建立的三维模型中的相对位置;
根据需要建立的三维模型的形状、以及确定的所述基本二维图形的形状和相对位置,确定通过拉伸所述基本二维图形建立三维模型所需要的拉伸曲线,其中,所述拉伸曲线包含多个连续且位置确定的三维数据点;
针对所述拉伸曲线上的每个三维数据点,通过该三维数据点处对应的用于建立三维模型的预设变化矩阵,对组成所述基本二维图形轮廓的所有二维数据点进行矩阵变换,得到用于组成三维模型的三角片的多个顶点;其中,每个三维数据点处经过矩阵变换后得到的多个顶点组成变换后的二维图形;所述预设变化矩阵是根据三维模型的形状,以及所述基本二维图形的形状和相对位置确定的;
将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。
2.如权利要求1所述的方法,其特征在于,根据下列方式确定每个三维数据点处对应的所述预设变化矩阵:
针对所述拉伸曲线上的每个三维数据点,根据三维模型的形状、以及所述基本二维图形的形状和相对位置,确定每个三维数据点处对应的用于对所述基本二维图形进行旋转的旋转矩阵、用于对所述基本二维图形进行缩放的缩放矩阵、以及用于对所述基本二维图形进行平移的平移矩阵;
根据确定的所述旋转矩阵、所述缩放矩阵和所述平移矩阵,确定每个三维数据点处对应的所述预设变化矩阵。
3.如权利要求2所述的方法,其特征在于,根据下列方式确定每个三维数据点处对应的所述旋转矩阵:
根据所述变换后的二维图形的法向量、以及该变换后的二维图形所在的三维数据点的位置处的切向量,确定所述法向量和所述切向量之间的夹角;
根据确定的所述夹角,确定所述法向量和所述切向量之间的垂直向量,并将所述垂直向量作为旋转向量;
根据确定的所述夹角和所述旋转向量,确定每个三维数据点处对应的所述旋转矩阵。
4.如权利要求2所述的方法,其特征在于,根据下列方式确定每个三维数据点处对应的所述缩放矩阵:
针对所述拉伸曲线上的每个三维数据点,根据三维模型的形状、所述基本二维图形的形状和相对位置、以及该三维数据点的位置,确定该三维数据点处对应的用于组成所述缩放矩阵的缩放因子,以确定每个三维数据点处对应的所述缩放矩阵。
5.如权利要求2所述的方法,其特征在于,根据下列方式确定每个三维数据点处对应的所述平移矩阵:
针对所述拉伸曲线上的每个三维数据点,根据三维模型的形状、所述基本二维图形的形状和相对位置、以及该三维数据点的位置,确定用于将所述基本二维图形平移到该三维数据点处的平移矩阵,以确定每个三维数据点处对应的所述平移矩阵。
6.一种三维拉伸建模的设备,其特征在于,该设备包括:
第一确定模块,用于确定用户输入的基本二维图形的形状和所述基本二维图形在需要建立的三维模型中的相对位置;
第二确定模块,用于根据需要建立的三维模型的形状、以及确定的所述基本二维图形的形状和相对位置,确定通过拉伸所述基本二维图形建立三维模型所需要的拉伸曲线,其中,所述拉伸曲线包含多个连续且位置确定的三维数据点;针对所述拉伸曲线上的每个三维数据点,通过该三维数据点处对应的用于建立三维模型的预设变化矩阵,对组成所述基本二维图形轮廓的所有二维数据点进行矩阵变换,得到用于组成三维模型的三角片的多个顶点;其中,每个三维数据点处经过矩阵变换后得到的多个顶点组成变换后的二维图形;所述预设变化矩阵是根据三维模型的形状,以及所述基本二维图形的形状和相对位置确定的;
连接模块,用于将确定的所有顶点中需要连接的顶点连接起来形成多个三角片,完成三维模型的建模。
7.如权利要求6所述的设备,其特征在于,所述第二确定模块根据下列方式确定每个三维数据点处对应的所述预设变化矩阵:
针对所述拉伸曲线上的每个三维数据点,根据三维模型的形状、以及所述基本二维图形的形状和相对位置,确定每个三维数据点处对应的用于对所述基本二维图形进行旋转的旋转矩阵、用于对所述基本二维图形进行缩放的缩放矩阵、以及用于对所述基本二维图形进行平移的平移矩阵;根据确定的所述旋转矩阵、所述缩放矩阵和所述平移矩阵,确定每个三维数据点处对应的所述预设变化矩阵。
8.如权利要求7所述的设备,其特征在于,所述第二确定模块根据下列方式确定每个三维数据点处对应的所述旋转矩阵:
根据所述变换后的二维图形的法向量、以及该变换后的二维图形所在的三维数据点的位置处的切向量,确定所述法向量和所述切向量之间的夹角;根据确定的所述夹角,确定所述法向量和所述切向量之间的垂直向量,并将所述垂直向量作为旋转向量;根据确定的所述夹角和所述旋转向量,确定每个三维数据点处对应的所述旋转矩阵。
CN201510370161.4A 2015-06-29 2015-06-29 一种三维拉伸建模的方法和设备 Active CN104915993B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510370161.4A CN104915993B (zh) 2015-06-29 2015-06-29 一种三维拉伸建模的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510370161.4A CN104915993B (zh) 2015-06-29 2015-06-29 一种三维拉伸建模的方法和设备

Publications (2)

Publication Number Publication Date
CN104915993A CN104915993A (zh) 2015-09-16
CN104915993B true CN104915993B (zh) 2018-05-01

Family

ID=54085029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510370161.4A Active CN104915993B (zh) 2015-06-29 2015-06-29 一种三维拉伸建模的方法和设备

Country Status (1)

Country Link
CN (1) CN104915993B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106846490B (zh) * 2017-02-09 2019-08-27 腾讯科技(深圳)有限公司 一种弧面模型用于在3d场景进行展示的展示方法及装置
CN109523636B (zh) * 2018-11-21 2023-08-11 北京像素软件科技股份有限公司 连续网格物体的生成方法及装置
CN109976614B (zh) * 2019-03-28 2021-04-06 广州视源电子科技股份有限公司 一种立体图形的标注方法、装置、设备及介质
CN110415361B (zh) * 2019-07-26 2020-05-15 北京罗森博特科技有限公司 断裂物体拼接方法及装置
CN113284236A (zh) * 2021-07-02 2021-08-20 杭州群核信息技术有限公司 3d建模方法、装置和存储介质
CN113793412A (zh) * 2021-08-10 2021-12-14 中国核电工程有限公司 基于二维平面模板图的核电厂三维建模方法和系统
CN117911575A (zh) * 2024-03-20 2024-04-19 深圳市奇普乐芯片技术有限公司 折线计算优化方法、装置、计算机设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276482A (zh) * 2008-05-12 2008-10-01 北京理工大学 基于动态Billboard技术的三维场景绘制简化方法
CN101388118A (zh) * 2008-10-17 2009-03-18 浙江大学 基于扫描输入的三维鞋楦重建方法
CN102982583A (zh) * 2012-10-30 2013-03-20 深圳市旭东数字医学影像技术有限公司 三角网格的数据拉伸方法及系统
CN103325086A (zh) * 2013-07-10 2013-09-25 中国科学院苏州纳米技术与纳米仿生研究所 一种基于四面体坐标系的三维图形的变形方法
CN103679783A (zh) * 2013-10-18 2014-03-26 中国科学院自动化研究所 基于几何变形的三维动画角色模型皮肤变形方法
CN104123747A (zh) * 2014-07-17 2014-10-29 北京毛豆科技有限公司 多方式触控三维建模方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7936352B2 (en) * 2004-07-21 2011-05-03 Dassault Systemes Solidworks Corporation Deformation of a computer-generated model

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276482A (zh) * 2008-05-12 2008-10-01 北京理工大学 基于动态Billboard技术的三维场景绘制简化方法
CN101388118A (zh) * 2008-10-17 2009-03-18 浙江大学 基于扫描输入的三维鞋楦重建方法
CN102982583A (zh) * 2012-10-30 2013-03-20 深圳市旭东数字医学影像技术有限公司 三角网格的数据拉伸方法及系统
CN103325086A (zh) * 2013-07-10 2013-09-25 中国科学院苏州纳米技术与纳米仿生研究所 一种基于四面体坐标系的三维图形的变形方法
CN103679783A (zh) * 2013-10-18 2014-03-26 中国科学院自动化研究所 基于几何变形的三维动画角色模型皮肤变形方法
CN104123747A (zh) * 2014-07-17 2014-10-29 北京毛豆科技有限公司 多方式触控三维建模方法和系统

Also Published As

Publication number Publication date
CN104915993A (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
CN104915993B (zh) 一种三维拉伸建模的方法和设备
Campen et al. Dual strip weaving: Interactive design of quad layouts using elastica strips
CN104123747B (zh) 多方式触控三维建模方法和系统
WO2006111976A2 (en) Automatic remeshing by mapping a 2d grid on 3d genus-g meshes based on topological analysis
US20050140678A1 (en) Computer graphics systems and methods
JP2011222003A (ja) 平行測地線によってモデリングされるパーツの設計
CN106683191B (zh) 一种适用于复杂曲面和简单曲面的定距布筋方法
CN113642057B (zh) 一种自动生成Autocad格式流速矢量图的方法
CN104951632A (zh) 用于圆台表面混凝土结构的三维布筋方法
CN110414142B (zh) 浓密机的参数化建模方法
CN106023317A (zh) 一种用于大数据测试的加权Voronoi图生成方法
Nuić et al. Algorithms for procedural generation and display of trees
Lebamovski The Effect of 3D technologies in stereometry training
Wu et al. An interactive system of modeling 3D trees with ball b-spline curves
JP3187807B2 (ja) 物体の表面形状データ作成装置
SHARAH et al. Streamlining the Modelling to Virtual Reality Process
JPH07302356A (ja) 自由曲面作成方法及び自由曲面作成装置
TW200823803A (en) Method for constructing triangular grids of point clouds
CN104036547B (zh) 基于Leap Motion控制的三维笔刷实时生成网络模型的方法与装置
JP6915237B2 (ja) 情報処理装置、シミュレータ結果表示方法、及びシミュレータ結果表示プログラム
Docampo-Sánchez et al. A regularization approach for automatic quad mesh generation
CN110059660A (zh) 移动端平台3d人脸注册方法及装置
JP3823596B2 (ja) 動作シミュレーション用データの圧縮方法
CN109979007A (zh) 一种建筑体的几何造型方法和装置
US20240144567A1 (en) Method and system for animating hair with resolution independent fiber deformation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100101 Beijing city Chaoyang District District three building 10, building 1, Hui Li two

Applicant after: Edip (Beijing) cultural Polytron Technologies Inc

Address before: 100101 Beijing city Chaoyang District District three building 10, building 1, Hui Li two

Applicant before: Beijing East Ideapool Technology Development Co., Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100101 Beijing city Chaoyang District District three building 10, building 1, Hui Li two

Patentee after: Aidipu Technology Co., Ltd

Address before: 100101 Beijing city Chaoyang District District three building 10, building 1, Hui Li two

Patentee before: IDEAPOOL (BEIJING) CULTURE AND TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder