CN102496179A - 一种三维场景的裁剪方法 - Google Patents
一种三维场景的裁剪方法 Download PDFInfo
- Publication number
- CN102496179A CN102496179A CN2011103518305A CN201110351830A CN102496179A CN 102496179 A CN102496179 A CN 102496179A CN 2011103518305 A CN2011103518305 A CN 2011103518305A CN 201110351830 A CN201110351830 A CN 201110351830A CN 102496179 A CN102496179 A CN 102496179A
- Authority
- CN
- China
- Prior art keywords
- model
- layer
- cutting
- interest
- tri patch
- 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.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种三维场景的裁剪方法,包括以下步骤:A、在三维场景中选择兴趣图层;B、对所述兴趣图层进行粗裁剪后,细裁剪所述兴趣图层;C、对裁剪出的兴趣图层进行重构。从而实现对于复杂三维模型的裁剪。
Description
技术领域
本发明涉及一种三维场景的裁剪方法。
背景技术
随着数字城市三维地理空间基础框架建设的推进,我国许多城市已逐步建成了覆盖中心城区的数字城市三维地图(场景)模型数据,并在城区规划、文物保护等方面获得了广泛的应用。而在许多三维地图的实际应用中,用户仅关心与其自身业务相关的局部场景,此时便需要对三维地图进行裁剪,以便只保留与相关业务有关的场景,裁掉无关的场景,避免产生不必要的三维数据冗余。
目前,在地质学和医学上存在一些处理三维模型裁剪的方法,但仅针对单个三维模型剖面的裁剪。而三维地图中的场景通常是由多个复杂的三维地理模型组成,这些针对单个三维模型剖面进行裁剪的方法难以胜任对于复杂三维模型的裁剪。
发明内容
有鉴于此,本发明的主要目的在于提供一种三维场景的裁剪方法,以实现对于复杂三维模型的裁剪。
本发明提供的一种三维场景的裁剪方法,包括以下步骤:
A、在三维场景中选择兴趣图层;
B、对所述兴趣图层进行粗裁剪后,细裁剪所述兴趣图层;
C、对裁剪出的兴趣图层进行重构。
由上可以看出,本发明方法能够实现复杂三维模型的裁剪。
在上述方法中,在所述步骤A之前还包括以下步骤:
对所述三维场景进行裁剪预处理,包括:将现实世界中具有共同属性的地物归属为一个图层,将同一图层内位置相邻的多个模型划分为数据区、数据块;以数据区、数据块的范围框作为模型的空间索引。
在上述方法中,为模型建立所述空间索引的步骤如下:
a、将该图层中的所有模型加入到一个数据区中,计算此数据区的范围框;
b、设置该图层中数据区划分粒度的阙值;其中,所述数据区划分粒度的阙值为数据区中模型的个数或数据区中模型占用内存的大小;
c、判断该数据区是否满足所述阙值:若满足,则以此数据区的范围框作为模型的空间索引;否则,从此数据区中心位置起将此数据区按照四叉树数据结构划分为四个区后进入下一步;
d、计算划分出的每个区的范围框,并重复步骤c,直到这一图层中的剩余的模型个数或模型占用内存的大小低于数据区划分粒度的阙值,此时将剩余的所有模型加入到一个数据块中,计算此数据块的范围框;
e、设置该图层中数据块划分粒度的阙值;其中,所述数据块划分粒度的阙值为数据块中模型的个数或模型占用内存的大小;
f、判断该数据块是否满足所述阙值:若满足,则以此数据块的范围框作为模型的空间索引;否则,从此数据块中心位置起将此数据区按照四叉树数据结构划分为四个块后进入下一步;
g、计算划分出的每个块的范围框,并重复步骤f,直到这一图层中的剩余模型个数或剩余模型占用内存的大小等于或低于数据块划分粒度的阙值。
由上可以看出,通过上述的预处理对三维场景海量数据的管理和调度,利于使用者提取出需要的数据层,过滤掉不需要的数据层。
在上述方法中,步骤B所述粗裁剪包括:
直接排除位于所述兴趣图层的裁剪域以外的数据区、数据块和/或模型,同时将位于所述兴趣图层的裁剪域以内的数据区、数据块和/或模型作为全部/部分裁剪结果直接返回。
由上可以看出,对于所述兴趣图层的粗裁剪不但可以有效节约内存,还可以提高大范围三维场景的裁减速度。
在上述方法中,步骤B所述细裁剪包括:
对模型顶面三角面片、模型立面三角面片的三维裁剪;其中,
对于模型顶面三角面片的三维裁剪包括以下步骤:
i、利用多边形裁剪算法,求出模型顶面三角面片与兴趣图层裁剪域的相交多边形;
ii、利用线性内插算法,求出相交多边形上各顶点的纹理坐标值;
iii、利用平面多边形的三角剖分算法,求出相交多边形的剖分三角面片集;
对于模型立面三角面片的三维裁剪包括以下步骤:
I、判断模型立面三角面片的某一边与兴趣图层裁剪域的位置关系:如果模型立面三角面片的某一边在兴趣图层裁剪域内,则将该立面三角面片放入裁剪立面三角面片集中;如果模型立面三角面片的某一边与兴趣图层裁剪域相交,则进行下一步;否则,对下一个模型立面三角面片进行上述判断;
II、判断模型立面三角面片的某一边与兴趣图层裁剪域的交点个数:如果模型立面三角面片的某一边与兴趣图层裁剪域有两个交点,则判断交点连线段中点是否在兴趣图层裁剪域内:若是,则构造一个宽度为交点连线段的长度,且长度为无限长的四边形裁剪域,接着按照上述模型顶面三角面片的三维裁剪方法裁剪所述四边形裁剪域得到三角面片集;如果交点连线段中点不在兴趣图层裁剪域内,则不予处理;
如果模型立面三角面片的某一边与兴趣图层裁剪域只有一个交点,则确定这一边上位于所述兴趣图层裁剪域内的点,并构造一个宽度为交点与该端点的连线段长度,且长度为无限长的四边形裁剪域,接着按照上述模型顶面三角面片的三维裁剪方法裁剪所述四边形裁剪域得到三角面片集;
如果模型立面三角面片的某一边与兴趣图层裁剪域有两个以上交点,则对于存在偶数个交点的情况按照上述两个交点的情况处理,对于存在奇数个交点的情况按照上述一个交点的情况处理;
之后,判断是否存在下一个模型立面三角面片:若是,则返回步骤I对下一个模型立面三角面片与兴趣图层裁剪域的位置关系进行判断;若否,则完成了模型立面三角面片的三维裁剪。
由上可以看出,所述细裁剪通过分别对模型顶面三角面片、模型立面三角面片的进行裁剪从而实现了模型的真三维裁剪。
在上述方法中,在所述细裁剪之前包括步骤:
使用递归算法来调取复杂模型的子模型;然后,
直接排除位于所述兴趣图层的裁剪域以外的子模型,同时将位于所述兴趣图层的裁剪域以内的子模型作为部分裁剪结果直接返回。
由上可以看出,通过将对于复杂三维模型的裁剪转换为对于复杂三维模型子模型的裁剪,降低了裁剪难度,提高了裁剪效率。
在上述方法中,所述多边形裁剪算法为扩展的Weiler-Athertion几何裁剪算法;
所述Weiler-Athertion几何裁剪算法的扩展为:
通过线性内插法求出每个已知坐标的入点和出点的高程值;由出点、入点的坐标值及高程值构成的三维点数据结构替换掉仅由出点、入点的坐标值构成二维点数据结构。
由上可以看出,使用通过上述扩展的Weiler-Athertion几何裁剪算法可以完成真三维模型的裁剪,弥补了Weiler-Athertion几何裁剪算法只能裁剪二维模型的缺陷。
在上述方法中,所述步骤i还包括:
在多边形的顶点序列链表上增加或减少交点,以保持出点和入点交替出现。
由上可以看出,上述方法可避免在大范围三维场景的裁剪过程中遇到两个多边形的边重合或两个多边形在顶点处相交、影响裁剪正确性的特殊情况。
在上述方法中,所述步骤ii包括:
使用线性内插法和/或双线性内插法求出相交多边形与三角面片的交点的纹理坐标。
由上可以看出,上述线性内插法、双线性内插法简单、易实现,利于三维模型的快速裁剪。
在上述方法中,所述步骤iii包括:
在相交多边形中寻找一个可剖分顶点,将相交多边形分割成一个三角形和一个新多边形;
判断新多边形的凹凸性:如果新多边形是凸多边形,则顺序连接新多边形各个顶点形成裁剪顶面三角形面片集;否则对该新多边形进行上述步骤的递归操作,直到从该新多边形中分割出一个/多个三角形面片和一个凸多边形,再顺序连接凸多边形各个顶点形成裁剪顶面三角形面片集;
局部优化顶面三角形面片集。
由上可以看出,上述三角剖分方法简单可靠,效率高,且易于实现,适于大范围三维场景快速裁剪的需要。
附图说明
图1为本发明提供的三维场景裁剪方法流程图;
图2为经过预处理的三维场景数据裁剪示意图,其中,
201:裁剪域内的数据区;
202:裁剪域内的数据块;
203:与裁剪域相交的数据区、块;
204:位于裁剪域外的数据;
205:位于裁剪域内的模型;
206:与裁剪域相交的模型;
图3a为三维模型顶面与裁剪域多边形相交示意图;
图3b为多边形几何裁剪算法裁剪相交多边形的过程图,其中,
301:插入三角面片123与兴趣图层裁剪域ABCDEFGHIJK的交点后的三角面片顶点序列;
302:插入三角面片123与兴趣图层裁剪域ABCDEFGHIJK的交点后的兴趣图层裁剪域顶点序列;
303:裁剪后输出的相交多边形顶点序列;
图3c为相交多边形的三角剖分结果示意图;
图4a为相交多边形的顶点在三角面片边界上的示意图;
图4b为相交多边形的顶点在三角面片内的示意图;
图5为三维模型立面三维裁剪结果示意图;
图6为三维模型三维裁剪结果示意图,其中,
610:模型裁剪区;
图7a为相交多边形中非可剖分顶点示意图;
图7b为经过三角剖分的相交多边形示意图。
具体实施方式
下面结合附图详细介绍本发明提供的一种三维场景的裁剪方法。
如图1所示,所述三维场景的裁剪方法包括以下步骤:
步骤100:对三维场景进行裁剪预处理。
以三维形式表达场景所需的数据量通常是二维形式所需数据量的100多倍。为了满足三维场景海量数据的管理和调度需求,利于使用者提取出需要的数据层,过滤掉不需要的数据层,在裁剪三维场景之前对三维场景的数据采取必要的预处理。
所述预处理即采用分层、分区、分块的策略对三维场景数据进行组织:将现实世界中具有共同属性的地物归属为一个图层,将同一图层内位置相邻的多个模型划分为数据区、数据块。以数据区、数据块的范围框作为模型的空间索引。为某一图层中的全部模型建立空间索引的过程如下:
1)将该图层中的所有模型加入到一个数据区中,并计算此数据区的范围框(范围坐标序列);
2)设置该图层中数据区划分粒度的阙值。其中,可以数据区中模型的个数或模型占用内存的大小作为数据区划分粒度的阙值;
3)判断该数据区是否满足所述阙值:若满足,则以此数据区的范围框作为模型的空间索引;否则,从此数据区中心位置起将此数据区按照四叉树数据结构划分为四个区;
4)计算划分出的每个区的范围框,并重复步骤3),直到这一图层中的剩余的模型个数或模型占用内存的大小低于数据区划分粒度的阙值;此时,将剩余的所有模型加入到一个数据块中,计算此数据块的范围框;
5)设置该图层中数据块划分粒度的阙值。其中,可以数据块中模型的个数或模型占用内存的大小作为数据块划分粒度的阙值;
6)判断该数据块是否满足所述阙值:若满足,则以此数据块的范围框作为模型的空间索引;否则,从此数据块中心位置起将此数据区按照四叉树数据结构划分为四个块;
7)计算划分出的每个块的范围框,并重复步骤6),直到这一图层中的剩余的模型个数或模型占用内存的大小等于或低于数据块划分粒度的阙值。
步骤200:在经过上述预处理的三维场景中选择兴趣图层。
所述兴趣图层是使用者需要经常使用的一部分三维场景,即需要从所述三维场景中裁剪下来以方便经常使用的那一部分三维场景。
在大范围三维场景的裁剪过程中,通过上述预处理对三维数据进行组织有利于使用者只提取其兴趣图层,过滤掉不需要的图层。
步骤300:裁剪所述兴趣图层。
在本实施例中,可先对所述兴趣图层进行粗裁剪。如图2所示,可基于分层、分区、分块的数据组织策略,直接排除位于兴趣图层裁剪域以外的数据区、数据块和/或模型。同时将位于所述裁剪域以内的数据区、数据块和/或模型作为全部/部分裁剪结果直接返回。从而可有效节约内存并能够提高针对大范围三维场景(市级三维场景)的裁减速度。若还存在位于裁剪域以外的所述兴趣图层内的数据区、数据块和/或模型,则需要对兴趣图层进行细裁剪,即对模型的三维裁剪,具体过程包括:
对于复杂的模型来说,例如包含许多子模型的复杂模型,首先需要使用递归算法来调取其子模型。然后,再逐一判断子模型与兴趣图层裁剪域的关系,具体判断过程同上,不再赘述。
对于模型(包括子模型)三角面片的三维裁剪包括:
模型顶面三角面片和立面三角面片的三维裁剪。
所谓顶面三角面片,即法向量的Z分量不为0的所有三角面片的集合。对于模型顶面三角面片的三维裁剪包括以下步骤:
1、利用多边形裁剪算法,求得模型顶面三角面片与兴趣图层裁剪域的相交多边形;
如图3a、3b所示,假设三角面片和兴趣图层裁剪域的顶点序列者按顺时针方向排列,以模型顶面三角面片123为例,利用多边形裁剪算法求得模型顶面三角面片123与兴趣图层裁剪域多边形ABCDEFGHIJK的相交多边形a1bDCB。其中的多边形裁剪算法可使用扩展的Weiler-Athertion几何裁剪算法。由于Weiler-Athertion几何裁剪算法是二维算法,不能满足三维模型的裁剪需要。这就需要对Weiler-Athertion几何裁剪算法进行扩展,使其带有第三维高程信息。扩展的具体方法为:通过线性内插法求出每个已知坐标的入点(三角面片由此点进入兴趣图层裁剪域,如图3a中的a点)和出点(三角面片由此点离开兴趣图层裁剪域,如图3a中的b点)的高程值;由出点、入点的坐标值及高程值构成的三维点数据结构替换掉仅由出点、入点的坐标值构成二维点数据结构。由此完成满足三维模型裁剪需要的Weiler-Athertion几何裁剪算法的扩展。
此外,在大范围三维场景的裁剪过程中,总会碰到两个多边形的边重合或两个多边形在顶点处相交的特殊情况。为了避免出现这两种影响裁剪正确性的情况出现,可采用如下两种方法:1)在多边形的顶点序列链表上增加或减少交点,以保持出点和入点交替出现;2)对顶点进行随机偏移。
2、利用线性内插算法,求得相交多边形上各顶点的纹理坐标值;
相交多边形的顶点与三角面片的位置关系通常有两种:一种是相交多边形的顶点在三角面片的边界上;另一种是相交多边形的顶点在三角面片内。其中,与第一种位置关系对应的情况是求相交多边形与三角面片的交点的纹理坐标。如图4a所示,D点为某一相交多边形的一个顶点,其在三角面片ABC的BC边上,已知B、C两点的纹理坐标,且B、C、D三点共线,这样利用线性内插法可以很容易地求得D点的纹理坐标。由于线性内插法为公知技术,在此不再赘述。当相交多边形的顶点在三角面片内时,如图4b所示,E点为某一相交多边形的一个顶点,其在三角面片ABC内,已知A、B、C三点的纹理坐标。此时,利用双线性内插法求出E点的纹理坐标:首先连接A、E两点形成辅助线AE;接着做AE的延长线,并使该延长线与BC边相交于F点;根据A、B、C三点坐标求出直线AF与BC的交点F的几何坐标(两相交直线交点坐标解法为公知技术,在此不再赘述);然后利用线性内插法求出与B、C两点共线的F点的纹理坐标;最后再次利用线性内插法求出与A、F两点共线的E点的纹理坐标。
3、利用平面多边形的三角剖分算法,求得相交多边形的剖分三角面片集,即:如图3c所示,将相交多边形剖分为裁剪顶面三角面片集。
目前的平面多边形三角剖分算法已经很成熟,但要满足大范围三维场景的快速裁剪需要,所使用的平面多边形三角剖分算法必须高效、稳定。
为了适应大范围三维场景快速裁剪的需要,本实施例采用了一种对相交多边形进行三角剖分的递归分割算法,包括:
在相交多边形中寻找一个可剖分顶点,对相交多边形进行划分以分割出一个三角形(由可剖分顶点及其相邻两点构成),同时产生一个新多边形;其中,可剖分顶点的判断过程为:以相交多边形中的某一顶点作为剖分点将相交多边形划分出一个三角形,同时产生一个新多边形;判断新多边形的各个凹点是否在这个三角形上或在这个三角形内:若是,则这一点为非可剖分顶点;否则,这一点是可剖分顶点。例如,图7a示出的顶点A为非可剖分顶点。
判断新多边形的凹凸性:如果新多边形是凸多边形,则顺序连接新多边形各个顶点形成裁剪顶面三角形面片集;否则对该新多边形进行上述步骤的递归操作,直到从该新多边形中分割出一个/多个三角形面片和一个凸多边形,再顺序连接凸多边形各个顶点形成裁剪顶面三角形面片集。图7b示出了对相交多边形ABCDE进行三角剖分过程中依次生成的三角形1、2和3。
优选地,可对由上述步骤产生的裁剪顶面三角形面片集进行局部优化(LOP,Local Optimization Procedure),即可确保三角形面片集为Delaunay最优剖分。局部优化过程为公知技术,在此不再赘述。
所谓立面三角面片,即法向量的Z分量为0的所有三角面片的集合。对于模型立面三角面片的三维裁剪包括以下步骤:
1、判断模型立面三角面片的某一边与兴趣图层裁剪域的位置关系:如果模型立面三角面片的某一边在兴趣图层裁剪域内,则将该立面三角面片放入裁剪立面三角面片集中;如果模型立面三角面片的某一边与兴趣图层裁剪域相交,则进行下一步;否则对下一个模型立面三角面片进行上述判断。
2、如果模型立面三角面片的某一边与兴趣图层裁剪域有两个交点,则判断交点连线段中点是否在兴趣图层裁剪域内:若是,则构造一个宽度为交点连线段的长度,且长度为无限长的四边形裁剪域,接着按照上述模型顶面三角面片的三维裁剪方法裁剪所述四边形裁剪域得到三角面片集;否则,不予处理;
如果模型立面三角面片的某一边与兴趣图层裁剪域只有一个交点,则确定这一边上位于所述兴趣图层裁剪域内的点,并构造一个宽度为交点与该端点的连线段长度,且长度为无限长的四边形裁剪域,接着按照上述模型顶面三角面片的三维裁剪方法裁剪所述四边形裁剪域得到三角面片集;
如果模型立面三角面片的某一边与兴趣图层裁剪域有多个(大于两个)交点,则对于存在偶数个交点的情况可按上述两个交点的情况处理,对于存在奇数个交点的情况可按上述一个交点的情况处理;
在完成上述位置关系判断、裁剪处理之后,判断是否存在下一个模型立面三角面片:若是,则返回步骤I对下一个模型立面三角面片与兴趣图层裁剪域的位置关系进行判断;若否,则退出模型立面三角面片的三维裁剪步骤。图5示出了三维模型立面三维裁剪结果。
步骤400:对裁剪出的兴趣图层进行重构。
在本步骤中,对通过上述步骤由粗到细裁剪得到的各种裁剪结果图层、数据区、数据块、模型、三角面片等中间数据按照三角面片-模型-数据区-数据块-图层的顺序进行重构,就可以得到位于兴趣图层裁剪域内的三维场景。例如,可对经过上述顶、立面裁剪处理的模型进行重构,即可得到模型的三维裁剪结果(参见图6)。所述重构通常包括重新计算模型中心位置、拓扑关系以及重构模型的逻辑关系。对于其他裁剪结果的重构可参见裁剪模型的重构,在此不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种三维场景的裁剪方法,其特征在于,包括以下步骤:
A、在三维场景中选择兴趣图层;
B、对所述兴趣图层进行粗裁剪后,细裁剪所述兴趣图层;
C、对裁剪出的兴趣图层进行重构。
2.根据权利要求1所述的方法,其特征在于,在所述步骤A之前还包括以下步骤:
对所述三维场景进行裁剪预处理,包括:将现实世界中具有共同属性的地物归属为一个图层,将同一图层内位置相邻的多个模型划分为数据区、数据块;以数据区、数据块的范围框作为模型的空间索引。
3.根据权利要求2所述的方法,其特征在于,为模型建立所述空间索引的步骤如下:
a、将该图层中的所有模型加入到一个数据区中,计算此数据区的范围框;
b、设置该图层中数据区划分粒度的阙值;其中,所述数据区划分粒度的阙值为数据区中模型的个数或数据区中模型占用内存的大小;
c、判断该数据区是否满足所述阙值:若满足,则以此数据区的范围框作为模型的空间索引;否则,从此数据区中心位置起将此数据区按照四叉树数据结构划分为四个区后进入下一步;
d、计算划分出的每个区的范围框,并重复步骤c,直到这一图层中的剩余的模型个数或模型占用内存的大小低于数据区划分粒度的阙值,此时将剩余的所有模型加入到一个数据块中,计算此数据块的范围框;
e、设置该图层中数据块划分粒度的阙值;其中,所述数据块划分粒度的阙值为数据块中模型的个数或模型占用内存的大小;
f、判断该数据块是否满足所述阙值:若满足,则以此数据块的范围框作为模型的空间索引;否则,从此数据块中心位置起将此数据区按照四叉树数据结构划分为四个块后进入下一步;
g、计算划分出的每个块的范围框,并重复步骤f,直到这一图层中的剩余模型个数或剩余模型占用内存的大小等于或低于数据块划分粒度的阙值。
4.根据权利要求2所述的方法,其特征在于,步骤B所述粗裁剪包括:
直接排除位于所述兴趣图层的裁剪域以外的数据区、数据块和/或模型,同时将位于所述兴趣图层的裁剪域以内的数据区、数据块和/或模型作为全部/部分裁剪结果直接返回。
5.根据权利要求2所述的方法,其特征在于,步骤B所述细裁剪包括:
对模型顶面三角面片、模型立面三角面片的三维裁剪;其中,
对于模型顶面三角面片的三维裁剪包括以下步骤:
i、利用多边形裁剪算法,求出模型顶面三角面片与兴趣图层裁剪域的相交多边形;
ii、利用线性内插算法,求出相交多边形上各顶点的纹理坐标值;
iii、利用平面多边形的三角剖分算法,求出相交多边形的剖分三角面片集;
对于模型立面三角面片的三维裁剪包括以下步骤:
I、判断模型立面三角面片的某一边与兴趣图层裁剪域的位置关系:如果模型立面三角面片的某一边在兴趣图层裁剪域内,则将该立面三角面片放入裁剪立面三角面片集中;如果模型立面三角面片的某一边与兴趣图层裁剪域相交,则进行下一步;否则,对下一个模型立面三角面片进行上述判断;
II、判断模型立面三角面片的某一边与兴趣图层裁剪域的交点个数:如果模型立面三角面片的某一边与兴趣图层裁剪域有两个交点,则判断交点连线段中点是否在兴趣图层裁剪域内:若是,则构造一个宽度为交点连线段的长度,且长度为无限长的四边形裁剪域,接着按照上述模型顶面三角面片的三维裁剪方法裁剪所述四边形裁剪域得到三角面片集;如果交点连线段中点不在兴趣图层裁剪域内,则不予处理;
如果模型立面三角面片的某一边与兴趣图层裁剪域只有一个交点,则确定这一边上位于所述兴趣图层裁剪域内的点,并构造一个宽度为交点与该端点的连线段长度,且长度为无限长的四边形裁剪域,接着按照上述模型顶面三角面片的三维裁剪方法裁剪所述四边形裁剪域得到三角面片集;
如果模型立面三角面片的某一边与兴趣图层裁剪域有两个以上交点,则对于存在偶数个交点的情况按照上述两个交点的情况处理,对于存在奇数个交点的情况按照上述一个交点的情况处理;
之后,判断是否存在下一个模型立面三角面片:若是,则返回步骤I对下一个模型立面三角面片与兴趣图层裁剪域的位置关系进行判断;若否,则完成了模型立面三角面片的三维裁剪。
6.根据权利要求5所述的方法,其特征在于,在所述细裁剪之前包括步骤:
使用递归算法来调取复杂模型的子模型;然后,
直接排除位于所述兴趣图层的裁剪域以外的子模型,同时将位于所述兴趣图层的裁剪域以内的子模型作为部分裁剪结果直接返回。
7.根据权利要求5所述的方法,其特征在于,所述多边形裁剪算法为扩展的Weiler-Athertion几何裁剪算法;
所述Weiler-Athertion几何裁剪算法的扩展为:
通过线性内插法求出每个已知坐标的入点和出点的高程值;由出点、入点的坐标值及高程值构成的三维点数据结构替换掉仅由出点、入点的坐标值构成二维点数据结构。
8.根据权利要求5所述的方法,其特征在于,所述步骤i还包括:
在多边形的顶点序列链表上增加或减少交点,以保持出点和入点交替出现。
9.根据权利要求5所述的方法,其特征在于,所述步骤ii包括:
使用线性内插法和/或双线性内插法求出相交多边形与三角面片的交点的纹理坐标。
10.根据权利要求5所述的方法,其特征在于,所述步骤iii包括:
在相交多边形中寻找一个可剖分顶点,将相交多边形分割成一个三角形和一个新多边形;
判断新多边形的凹凸性:如果新多边形是凸多边形,则顺序连接新多边形各个顶点形成裁剪顶面三角形面片集;否则对该新多边形进行上述步骤的递归操作,直到从该新多边形中分割出一个/多个三角形面片和一个凸多边形,再顺序连接凸多边形各个顶点形成裁剪顶面三角形面片集;
局部优化顶面三角形面片集。
11.根据权利要求10所述的方法,其特征在于,所述在相交多边形中寻找一个可剖分顶点包括:
以相交多边形中的任意一个顶点作为剖分点将相交多边形划分出一个三角形,同时产生一个新多边形;
判断新多边形的各个凹点是否在这个三角形上或在这个三角形内:若是,则这一点为非可剖分顶点;否则,这一点是可剖分顶点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103518305A CN102496179A (zh) | 2011-11-08 | 2011-11-08 | 一种三维场景的裁剪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103518305A CN102496179A (zh) | 2011-11-08 | 2011-11-08 | 一种三维场景的裁剪方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102496179A true CN102496179A (zh) | 2012-06-13 |
Family
ID=46188001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103518305A Pending CN102496179A (zh) | 2011-11-08 | 2011-11-08 | 一种三维场景的裁剪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102496179A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182964A (zh) * | 2013-11-19 | 2014-12-03 | 上海联影医疗科技有限公司 | 一种体数据的裁减方法 |
CN105404689A (zh) * | 2015-12-11 | 2016-03-16 | 厦门精图信息技术有限公司 | 一种电子地图子图层的构建、操作方法及装置 |
CN105513008A (zh) * | 2015-12-15 | 2016-04-20 | 天津津芯微电子科技有限公司 | 一种图像处理方法及装置 |
CN106651757A (zh) * | 2016-12-02 | 2017-05-10 | 天脉聚源(北京)传媒科技有限公司 | 一种裁剪图片的方法及装置 |
CN107622497A (zh) * | 2017-09-29 | 2018-01-23 | 广东欧珀移动通信有限公司 | 图像裁剪方法、装置、计算机可读存储介质和计算机设备 |
CN107886575A (zh) * | 2017-11-14 | 2018-04-06 | 辽宁工程技术大学 | 一种露天矿采场三角形网格裁剪煤层四边形网格的方法 |
CN108510579A (zh) * | 2018-03-21 | 2018-09-07 | 安徽财贸职业学院 | 一种工业复杂裁剪曲面的渲染显示方法 |
CN112819223A (zh) * | 2021-01-29 | 2021-05-18 | 云南省测绘资料档案馆(云南省基础地理信息中心) | 一种用于裁剪多边形的高性能求交方法 |
CN114491810A (zh) * | 2022-01-19 | 2022-05-13 | 东风汽车股份有限公司 | 一种基于catia的汽车冲压件建模的面片裁剪、修改方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576382A (zh) * | 2009-02-27 | 2009-11-11 | 泰瑞数创科技(北京)有限公司 | 一种基于三维展示平台的水利监测方法 |
-
2011
- 2011-11-08 CN CN2011103518305A patent/CN102496179A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576382A (zh) * | 2009-02-27 | 2009-11-11 | 泰瑞数创科技(北京)有限公司 | 一种基于三维展示平台的水利监测方法 |
Non-Patent Citations (2)
Title |
---|
刘凤杰 等: "一种三维城市场景的快速裁切算法", 《城市勘测》 * |
殷勇: "城市地表三维环境中典型空间分析方法研究", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182964A (zh) * | 2013-11-19 | 2014-12-03 | 上海联影医疗科技有限公司 | 一种体数据的裁减方法 |
CN105404689A (zh) * | 2015-12-11 | 2016-03-16 | 厦门精图信息技术有限公司 | 一种电子地图子图层的构建、操作方法及装置 |
CN105513008B (zh) * | 2015-12-15 | 2019-01-11 | 天津津芯微电子科技有限公司 | 一种图像处理方法及装置 |
CN105513008A (zh) * | 2015-12-15 | 2016-04-20 | 天津津芯微电子科技有限公司 | 一种图像处理方法及装置 |
CN106651757A (zh) * | 2016-12-02 | 2017-05-10 | 天脉聚源(北京)传媒科技有限公司 | 一种裁剪图片的方法及装置 |
CN107622497B (zh) * | 2017-09-29 | 2020-03-27 | Oppo广东移动通信有限公司 | 图像裁剪方法、装置、计算机可读存储介质和计算机设备 |
CN107622497A (zh) * | 2017-09-29 | 2018-01-23 | 广东欧珀移动通信有限公司 | 图像裁剪方法、装置、计算机可读存储介质和计算机设备 |
CN107886575A (zh) * | 2017-11-14 | 2018-04-06 | 辽宁工程技术大学 | 一种露天矿采场三角形网格裁剪煤层四边形网格的方法 |
CN108510579A (zh) * | 2018-03-21 | 2018-09-07 | 安徽财贸职业学院 | 一种工业复杂裁剪曲面的渲染显示方法 |
CN108510579B (zh) * | 2018-03-21 | 2019-09-20 | 安徽财贸职业学院 | 一种工业复杂裁剪曲面的渲染显示方法 |
CN112819223A (zh) * | 2021-01-29 | 2021-05-18 | 云南省测绘资料档案馆(云南省基础地理信息中心) | 一种用于裁剪多边形的高性能求交方法 |
CN114491810A (zh) * | 2022-01-19 | 2022-05-13 | 东风汽车股份有限公司 | 一种基于catia的汽车冲压件建模的面片裁剪、修改方法 |
CN114491810B (zh) * | 2022-01-19 | 2024-04-16 | 东风汽车股份有限公司 | 一种基于catia的汽车冲压件建模的面片裁剪、修改方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102496179A (zh) | 一种三维场景的裁剪方法 | |
CN106683167B (zh) | 复杂建筑物高精度模型自动建模方法 | |
CN102306396B (zh) | 一种三维实体模型表面有限元网格自动生成方法 | |
CN103871102B (zh) | 一种基于高程点和道路轮廓面的道路三维精细建模方法 | |
CN105913483A (zh) | 一种三维交叉道路模型生成的方法及装置 | |
CN105022865B (zh) | 一种基于stl模型布尔运算的飞机油箱内表面模型提取方法 | |
CN101373543A (zh) | 三维网格模型的快速剖切方法 | |
CN103413297A (zh) | 基于一体化三维gis模型的切割方法 | |
CN106844977A (zh) | 一种市政道路bim设计模型与gis数据集成方法 | |
CN101510225B (zh) | 产品stl模型布尔运算方法 | |
CN108776993A (zh) | 带有孔洞的三维点云的建模方法及地下电缆工井建模方法 | |
CN101630419A (zh) | 一种用于城市综合管网三维可视化系统的架构方法 | |
CN107918957B (zh) | 一种保持结构和纹理特征的三维建筑模型化简方法 | |
CN107767453A (zh) | 一种基于规则约束的建筑物lidar点云重构优化方法 | |
CN108537886B (zh) | 一种虚拟手术切割中的高质量网格划分和优化方法 | |
CN107886569A (zh) | 一种基于离散李导数的测度可控的曲面参数化方法及系统 | |
CN104715507B (zh) | 一种基于曲面片的三维地理实体自动构建方法 | |
CN104167021A (zh) | 一种基于地球空间立体剖分的空间目标索引方法 | |
CN104392053A (zh) | 一种蒙皮滚弯零件截面曲率分析方法 | |
CN105894553B (zh) | 一种基于格栅选择的街巷空间形态布局方法 | |
CN103914869A (zh) | 支持骨架个性化编辑的轻量化三维树木模型构建方法 | |
CN112687007B (zh) | 一种基于lod技术的立体网格图生成方法 | |
Raza et al. | Flexible earthwork BIM module framework for road project | |
CN104090945A (zh) | 一种地理空间实体构建方法及系统 | |
CN109741451A (zh) | 一种基于地形图构建三维地表bim模型的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120613 |