CN101373543A - 三维网格模型的快速剖切方法 - Google Patents

三维网格模型的快速剖切方法 Download PDF

Info

Publication number
CN101373543A
CN101373543A CNA2008101971214A CN200810197121A CN101373543A CN 101373543 A CN101373543 A CN 101373543A CN A2008101971214 A CNA2008101971214 A CN A2008101971214A CN 200810197121 A CN200810197121 A CN 200810197121A CN 101373543 A CN101373543 A CN 101373543A
Authority
CN
China
Prior art keywords
grid model
tri patch
triangle
tri
array
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
Application number
CNA2008101971214A
Other languages
English (en)
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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CNA2008101971214A priority Critical patent/CN101373543A/zh
Publication of CN101373543A publication Critical patent/CN101373543A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明公开了一种三维网格模型的快速剖切方法,该方法包括以下步骤:(1)三维模型转换为三角网格模型;(2)指定剖切面;(3)三维模型剖切。本发明剖切操作仅根据三角网格模型的所有顶点和三角面片信息进行,不仅能提高模型剖切的速度,还具有广泛的适应性,同时避免了将三角网格转换为特定的数据结构进行存储、管理和维护所带来的空间和时间复杂性,在计算机辅助设计/制造、工程施工管理、遥感遥测等领域有着重要的应用价值。

Description

三维网格模型的快速剖切方法
技术领域
本发明涉及一种三维网格模型的快速剖切方法,特别是在三维虚拟场景中的三维网格模型的数据结构和实时剖切方法。
背景技术
网格模型是一种重要的三维形体表示方法,其中三角网格使用最为广泛。网格模型可以以任意精度表示任意复杂的曲面和空间形体。在CAD/CAM领域,由曲线和曲面造型构造出的空间形体模型一般都转化为网格模型来进行存储和共享,CAM设备可直接利用网格模型数据进行加工和生产。在地理空间信息科学等领域,从大量的点云数据中重建的三维形体也大多转化为三角网格模型进行存储和管理,便于采用不同的方法进行后续处理和分析,提取不同实际应用所需要的重要信息。随着几何造型领域的不断发展,网格模型成为三维形体的主流描述方式之一。
面对机械设计和生产加工中无处不在的网格模型,实现任意实体网格模型的剖切,进而计算和展示实体模型不同部分的特征信息,具有较大实用价值和现实意义。在CAD/CAM中需要随时根据设计需要对实体网格模型进行剖切,以对实体的各个不同部分分别进行处理和分析,如计算实体各部分所需材料,或分析剖面特征等;在水坝、桥梁、山体开挖或填筑等大型建筑工程施工中,需要根据施工规范将施工模型剖切成单位时间内可完成的施工单元,并根据各个施工单元的空间位置关系来合理安排施工过程和组织施工机械,以提高施工效率;在地理空间信息科学等领域,也需要对重建的地形等三维模型在不同的海拔高度进行剖切,以分析地形特征等等。实现任意实体网格模型的快速剖切对于网格模型的实时分析具有重要意义和较大的实际应用价值。
对于任意一个给定的三维网格模型,只有所有面片围成有限封闭空间的网格模型才构成计算机图形学意义上的正则三维形体。常用网格模型的每个面片是平面凸多边形,且网格上的每条边由且仅由两个面片共有。在网格模型中,每个面片的边数可能是变化的,网格模型的每个面片都是三角形时称之为三角网格。非三角网格可以通过网格模型中每个凸多边形面片的三角剖分来将其转换为三角网格。
在实际应用中,完成实体造型后一般将实体模型转换为三角网格,并以特定的文件格式(如*.3ds文件等)保存在存储介质上。所存储的三角网格基本数据结构如图1所示。本发明直接根据从文件中读取的顶点和三角面片信息来实现剖分计算,而没有在目前最常用的三角网格模型的半边数据结构上实现剖分计算,这样就不需要根据读取的顶点和三角面片信息来构造半边数据结构,如计算点、边和三角面片的邻接关系,网格半边数据结构的维护管理等,能有效降低计算复杂度,保证剖切的实施性和高效性。
发明内容
本发明的目的是提供一种对任意三角网格模型进行平面剖切的方法,该方法根据所指定任意平面,直接在三角网格模型的三角面片集合上实现剖切计算,将任意拓扑结构的三角网格模型剖切为子三角网格,由于避免了将三角网格模型转换为特定的数据结构进行存储、管理和维护所带来的空间和时间复杂性,从而能实现三角网格模型的快速、高效剖切。
实现本发明目的采用的技术方案是:一种三维网格模型的快速剖切方法,用直线或无自相交曲线剖切线沿剖切方向扫描成的剖切面,将任意三维网格模型切分为两个封闭的、位于剖切面两侧的子三维网格模型,包括以下步骤:
(1)三维网格模型转换为三角网格模型;
(2)指定剖切方向和剖切线;
(3)三角网格模型剖切。
其中步骤(1)中将三维网格模型转换为三角网格模型,是通过将三维网格模型的各个多边形面片剖分为三角形面片来实现,转换形成的三角网格模型的数据结构只需包括顶点数组和三角面片数组,其中顶点数组的每个元素存储一个顶点的三维坐标、法线向量和纹理坐标等信息,三角面片数组中每三个元素描述一个三角面片,分别存储该三角面片的三个顶点在顶点数组中的索引号。
上述三维网格模型及剖切后形成的子三维网格模型是采用三维多边形面片所围成的用于描述三维实体的空间封闭区域。
步骤(2)中指定剖切方向通过指定三维空间中的方向矢量完成。指定剖切线是通过指定垂直剖切方向的任意平面内的顶点序列p0,...pN-1(n≥2)来完成。
上述剖切线是位于垂直剖切方向平面内的直线或曲线。三维网格模型所占据的空间区域是有限的,可以采用直线段或曲线段来表示剖切线;在满足工程精度要求的条件下,曲线段可以用折线段来逼近。因此,直线或曲线剖切线统一用顶点序列v0,...vN-1(N≥2)依次连接构成的折线段<v0,...vN-1>来逼近(N=2时为直线剖切线,其它为曲线剖切线);
步骤(3)三角网格模型剖切包括以下步骤:首先对三角网格模型中的每个三角面片,判断其是否和剖切面相交,对于和剖切面不相交的三角面片,判断三角面片位于剖切面的正侧或反侧,从而将该三角面片的信息添加到正侧或反侧子三角网格模型的三角面片数组和顶点数组中,对于和剖切面相交的三角面片z作以下处理:(1)计算每个三角面片与剖切面的交点,将每个三角面片剖分为位于剖切面正侧或反侧的两个多边形面片,将正侧和反侧多边形剖分为三角面片后分别添加到正侧和反侧子三角网格模型的三角面片数组和顶点数组中;(2)根据三角面片与剖切面的所有交点计算三角网格模型的剖面多边形;(3)将剖面多边形剖分为三角面片,并将所有三角面片信息添加到正侧和反侧子三角网格模型的三角面片数组和顶点数组中;按上述方法处理完三角网格模型的所有三角面片后得到的正侧和反侧三角面片数组和顶点数组即构成了正侧和反侧的子三角网格模型。
根据三角面片与剖切面的所有交点计算三角网格模型的剖面多边形的方法为:(1)计算折线段<p0,...pN-1>中的每条线段<pi,pi+1>(0≤i≤n-2)沿剖切方向扫描形成的平面条形区域B(pi,pi+1);(2)计算每个条形区域B(pi,pi+1)和三角网格模型的每个三角面片的两个交点(包括条形区域两条端线与所有面片的交点)构成的交线,根据条形区域B(pi,pi+1)和所有三角面片的交线的邻接关系依次连接各条交线,得到条形区域B(pi,pi+1)和三角网格模型相交的交面多边形。
剖面多边形剖分为三角面片的方法为:(1)若剖面多边形不存在内边界,则直接计算剖面多边形的最优三角剖分;(2)若剖面多边形存在一条及一条以上内边界,则依次取最外层和次外层边界形成环形多边形,计算连接环形多边形内外环边界的桥边,然后计算添加桥边后的环形多边形的最优三角剖分。
本发明根据所指定的剖切方向和剖切线,直接在三角网格模型的三角面片集合上实现剖切计算,将任意拓扑结构的三角网格模型剖切为子三角网格。由于避免了将三角网格模型转换为特定的数据结构进行存储、管理和维护所带来的空间和时间复杂性,从而能实现三角网格模型的快速、高效剖切。
附图说明
图1是三角网格信息存储格式的示意图。
图2是三角面片与平面相交的可能位置关系示意图。
图3是较复杂的剖面多边形图。
图4是图2中剖面多边形的三角剖分结果图。
图5是剖切线<p0,...pN-1>不封闭时判别多边形的构造方法示意图。
图6是本发明方法操作的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
本发明提供的三维网格模型的快速剖切方法,即用直线或无自相交曲线剖切线沿剖切方向扫描成的剖切面,将任意三维网格模型切分为两个封闭的、位于剖切面两侧的子三维网格模型,本发明方法的流程如图6所示,具体包括以下步骤:
<一>三维网格模型转换为三角网格模型
若三维网格模型的面片不是三角面片,需要将每个面片剖分为多个三角面片,从而将三维网格模型转化为三角网格模型。面片剖分为三角面片的方法如下:
对三维网格模型中的任意面片A,设A的顶点集为VA={v0,...,vM-1}(Mi为Ai顶点数),法向为
Figure A200810197121D00071
剖分形成的三角面片集记为RA,采用如下方法实现A的三角剖分:
Figure A200810197121D00072
2)计算中VA中所有顶点的凸凹性:对任意顶点vi(vi∈VA),
Figure A200810197121D00073
其中,当i=0时 v v i p = v M i - 1 , 否则 v v i p = v i - 1 ; 当i=Mi-1时 v v i q = v 0 , 否则 v v i q = v i + 1 ;
3)若vi为凸顶点,且除
Figure A200810197121D00078
vi
Figure A200810197121D00079
外,VA中没有其它顶点位于三角形中,则顶点vi可切除,
Figure A200810197121D00082
的最小内角记为
4)按下式计算最小内角最大的顶点vs
Figure A200810197121D00084
5) R A = R A &cup; { &Delta; v v i p v i v v i q } , V A = V A - { v s } ;
6)若|VA|>3,转2);否则把VA中最后3个顶点构成的三角形添加到RA中;
7)按最大最小内角准则对RA中所有三角面片进行优化即可得到Ai的最优三角剖分:最大最小内角准则三角面片优化方法针对共边的三角面片对进行:对任意两共边三角面片T1和T2,如果T1和T2构成的四边形是凹的,则不做任何处理;如果T1和T2构成的四边形是凸的,则计算T1和T2的最小内角∠min(T1,T2),交换四边形对角线得到两个新的共边三角面片,记为
Figure A200810197121D00086
Figure A200810197121D00087
计算
Figure A200810197121D00088
Figure A200810197121D00089
最小内角
Figure A200810197121D000810
如果 &angle; min ( T 1 &prime; , T 2 &prime; ) > &angle; min ( T 1 , T 2 ) , 则用
Figure A200810197121D000812
Figure A200810197121D000813
替换T1和T2。上述优化过程针对整个三角面片集合重复进行,直到不存在可优化的三角面片对为止。
<二>指定剖切方向和剖切线
在将三维网格模型转化为三角网格模型后,按下述方法进行剖切:待剖切的三角网格模型记为M,其顶点集和三角面片集分别记为MV和MT。剖切面是剖切线<p0,...pN-1>沿剖切方向
Figure A200810197121D000814
扫描成的曲面,顶点p0,...pN-1位于任意指定的、垂直于
Figure A200810197121D000815
的平面内。M被剖切后形成两个子三角网格模型,分别记为M+和M-,相应的顶点集和三角面片集分别记为
Figure A200810197121D000816
Figure A200810197121D000817
任意三角面片T的顶点集记为 V T = { v T 1 , v T 2 , v T 3 } .
指定剖切方向是通过指定模型三维空间中的方向矢量完成,在指定剖切线<p0,...pN-1>时,为确保其沿着剖切方向
Figure A200810197121D000819
可将M剖分为两部分,必须确保剖切线<p0,...pN-1>满足下述条件之一:
(1)<p0,...pN-1>封闭,即p0=pN-1
(2)<p0,...pN-1>不封闭,但pN-1和pN-1位于M的包围盒外。
<三>三角网格模型剖切
为了快速判断任意顶点p位于剖切面的正侧还是反侧,采用如下方法构造判别多边形来进行判别:
(1)将p和M的包围盒BM投影到<p0,...pN-1>所在平面,p的投影记为p′,M的包围盒BM的投影为多边形区域,记为BM
(2)若<p0,...pN-1>封闭:取<p0,...pN-1>为判别多边形,在<p0,...pN-1>所在平面内连接p′和多边形<p0,...pN-1>外任意一点pw,求线段p′pw和多边形<p0,...pN-1>的交点个数,交点个数计算方法为:
1)p′pw和多边形<p0,...pN-1>相交在任意顶点pi(0≤i≤N-1)时,若<p0,...pN-1>中以pi为起点和终点的两条边位于p′pw同侧,记相交两次,否则记相交一次;
2)p′pw和多边形<p0,...pN-1>相交在非顶点时,记相交一次。
若线段p′pw和多边形<p0,...pN-1>的交点个数为奇数,判定p位于剖切面正侧;否则,判定p位于剖切面反侧;
(3)若<p0,...pN-1>不封闭:在BM′外取两点
Figure A200810197121D00092
Figure A200810197121D00093
使得线段pN-1
Figure A200810197121D00094
Figure A200810197121D00095
都和BM′不相交,取<p0,...pN-1
Figure A200810197121D00096
>为判别多边形,如图5所示。用(1)中交点计数法计算p′和多边形<p0,...pN-1
Figure A200810197121D00097
>外任意一点pw的连线
Figure A200810197121D00098
与多边形<p0,...pN-1>的交点个数,若交点个数为奇数,判定p位于剖切面正侧;否则,判定p位于剖切面反侧。
剖切线<p0,...pN-1>沿
Figure A200810197121D000910
对M进行剖切的过程分如下三个步骤进行:
步骤一:处理M中与剖切面不相交的三角面片
对M中任意三角面片T,按上述方法判定三角面片三个顶点
Figure A200810197121D00101
位于剖切面正侧或反侧,若顶点
Figure A200810197121D00102
都位于剖切面正侧或剖切面上,则
V M + = V M + &cup; V T , T M + = T M + &cup; { T } ;
若顶点
Figure A200810197121D00104
都位于剖切面反侧或剖切面上,则
V M - = V M - &cup; V T , T M - = T M - &cup; { T }
若顶点
Figure A200810197121D00106
中既有位于剖切面正侧的顶点,又有位于剖切面反侧的顶点,则三角面片和剖切面相交,按以下步骤二进行处理。
步骤二:处理M中与剖切面相交的三角面片
对M中和剖切面相交的任意三角面片T,依次用剖切线<p0,...pN-1>中各条线段沿扫描方向
Figure A200810197121D00107
扫描形成的条状区域将T剖切为仅位于剖切面一侧的多个小三角面片,然后按前面所述方法判断各个小三角面片位于剖切面的正侧或反侧,并将小三角面片及其顶点信息添加到
Figure A200810197121D00108
Figure A200810197121D00109
中;同时,根据条状区域和T的交点得到剖面多边形,将剖面多边形剖分为三角面片后,将这些三角面片及其顶点信息同时添加到
Figure A200810197121D001011
中。
令剖切线段pi-1pi(0≤i≤N-1)沿扫描方向
Figure A200810197121D001012
形成的条状区域Ri-1对T剖切完成后的三角面片集合为 S i - 1 = { T 0 , . . . , T N i - 1 - 1 } 对剖切线段pipi+1沿扫描方向
Figure A200810197121D001014
扫描形成的条状区域Ri对三角面片T的剖切处理方法如下:
(1)取三角面片Ti∈Si-1,置Si为空;
(2)线段pipi+1所在直线沿扫描方向
Figure A200810197121D001015
扫描形成的平面记为
Figure A200810197121D001016
三角面片T和平面相交的情况必为图2中所示两种情形a和b之一,交点记为
Figure A200810197121D001018
Figure A200810197121D001019
对图2—a所示情形:将三角面片
Figure A200810197121D001020
添加到Si中;对图2—b所示情形:将三角面片
Figure A200810197121D001023
添加到Si中;
(3)计算Ri和T的交线Li(T):计算剖切线段pipi+1在三角面片T所在平面的投影
Figure A200810197121D00111
则Ri和T的交线Li(T)为三角面片T所在平面上线段
Figure A200810197121D00112
和线段
Figure A200810197121D00113
的重合部分,即: L i ( T ) = ( v I 1 v I 2 ) &cap; p i T p i + 1 T ;
(4)将Ti从Si-1中删除。若Si-1为空则处理完毕,否则转(1);
剖切线<p0,...pN-1>中所有N条线段按上述方法对三角面片T的剖切处理完成后,按前面所述方法判断SN-1中的每个三角面片位于剖切面的正侧或反侧,并将这些三角面片及其顶点信息添加到
Figure A200810197121D00115
Figure A200810197121D00116
中;
对所有和剖切面相交的三角面片都采用剖切线<p0,...pN-1>中所有N条线段沿扫描方向
Figure A200810197121D00117
扫描形成的条状区域对其进行剖切。
步骤三:处理剖面多边形
按照步骤一和步骤二处理完三角网格模型M中所有的三角面片后,
Figure A200810197121D00118
Figure A200810197121D0011162013QIETU
Figure A200810197121D00119
即为剖切形成的剖面开口的两个子三角网格模型的顶点集和三角面片集,为使得子三角网格模型封闭,需要按下述方法对剖面进行三角剖分。
剖面的三角剖分针对剖切线<p0,...pN-1>的每条折线段进行。步骤二中已经计算出了M中三角面片T和剖切线段pipi+1沿扫描方向
Figure A200810197121D001110
扫描形成的条状区域Ri的交线Li(T)。因此,可按下式计算条状区域Ri和M中所有三角面片交线的集合Li
L i = &cup; T &Element; M T L i ( T )
Ri剖切M形成的剖面Ai可能由多条多边形边界构成,为此不妨设 A i = { A i 0 , . . . , A i K - 1 } (K≥1,是Ai包含的边界条数),Li中的所有交线按下述方法连接成剖面Ai的各个多边形边界:
(1)令n=0(0≤n≤K-1);
(2)从Li提取任意交线 l f = &lang; v f 1 , v f 2 &rang; 作为剖面多边形
Figure A200810197121D001114
的第一条边,同时将lf从中Li去除;
(3)置当前边 l = &lang; v 1 , v 2 &rang; = &lang; v f 1 , v f 2 &rang;
(4)在Li中计算距离当前边末端v2最近的边lnext
l next = min l &prime; &Element; L i ( | v 2 - l &prime; | ) , 其中|v2-l′|计算顶点v2与边l′两端点距离的较小值
(5)若|v2-lnext|小于v2和剖面多边形的第一条边起点
Figure A200810197121D00124
的距离
Figure A200810197121D00125
则lnext为剖面多边形的下一条边,同时将lnext从中Li去除,当前边l=lnext转(4)寻找下一条边;否则,剖面多边形
Figure A200810197121D00127
的所有边提取完毕。若Li为空,则整个过程结束;否则,n=n+1,转(2)从Li中为新的剖面多边形
Figure A200810197121D0012084802QIETU
提取边。
对于提取的剖面Ai的各个多边形边界,对于满足正则性要求的三角网格模型M,这些多边形边界应该是无自相交的多边形(图3所示为可能出现的较复杂剖面多边形,阴影部分为实体区域),各个多边形边界可能相离,也可能相互包含。
对于剖面 A i = { A i 0 , . . . , A i K - 1 } , 任意 A i k &Element; A i ( 0 &le; k &le; ( K - 1 ) ) , 若有下述(a)和(b)式成立:
&Not; &Exists; ( A &prime; &Element; A i , A &prime; &NotEqual; A i k ) A &prime; &Superset; A i k - - - ( a )
&Not; &Exists; ( A &prime; &Element; A i , A &prime; &NotEqual; A i k ) A i k &Superset; A &prime; - - - ( b )
Figure A200810197121D001212
所包围的区域为实体区域,并称之为单多边形边界实体区域。
此外,对任意 A i j , A i k &Element; A i ( 0 &le; j , k &le; ( K - 1 ) ; j &NotEqual; k ) , A i j &Superset; A i k , 若有下述(c)、(d)和(5)式成立:
Figure A200810197121D001215
Figure A200810197121D001216
&Not; &Exists; ( A &prime; &prime; &Element; A i , A &prime; &prime; &NotEqual; A i j , A &prime; &prime; &NotEqual; A i k ) A i j &Superset; A &prime; &prime; &Superset; A i k - - - ( e )
(其中|·|计算集合元素个数,mod为模运算)
则Ai和Aj所夹的区域为实体区域,称之为环形边界实体区域,
Figure A200810197121D001218
为边界外环,
Figure A200810197121D001219
为内环。
图3中,A5所示为单多边形边界实体区域;图2中A1和A2,或者A3和A4所夹内部区域为环形边界实体区域。剖面Ai的三角剖分针对其多边形边界的类型进行,若剖面Ai仅包含一个多边形边界,则按下述单多边形边界实体区域的三角剖分方法实现三角剖分;否则按照下述基于桥边的环形边界实体区域的三角剖分方法实现三角剖分。
(1)基于凸凹顶点的单多边形边界实体区域的三角剖分方法
单多边形边界可以采用逐步切除凸顶点的方法实现其Delaunay最优三角剖分。对A中的任意单多边形边界 A i &Element; A set ( 1 &le; i &le; N ) , 设Ai的顶点集为 V A i = { v 0 , . . . , v M i - 1 } (Mi为Ai顶点数),法向为
Figure A200810197121D00133
,三角剖分形成的三角面片集记为,采用如下方法实现三角剖分:
Figure A200810197121D00135
2)计算中
Figure A200810197121D00136
中所有顶点的凸凹性,对任意顶点 v i ( v i &Element; V A i ) ,
Figure A200810197121D00138
其中,当i=0时 v v i p = v M i - 1 , 否则 v v i p = v i - 1 ;
当i=Mi-1时 v v i q = v 0 , 否则 v v i q = v i + 1 ;
3)若vi为凸顶点,且除
Figure A200810197121D001313
vi
Figure A200810197121D001314
外,
Figure A200810197121D001315
中没有其它顶点位于
Figure A200810197121D001316
中,则顶点vi可切除,
Figure A200810197121D001317
的最小内角记为
4)按下式计算最小内角最大的顶点vs
Figure A200810197121D001319
5) R A i = R A i &cup; { &Delta; v v i p v i v v i q } , V A i = V A i - { v s } ;
6)若 | V A i | > 3 ,转2);否则把
Figure A200810197121D001322
中最后3个结点构成的三角形添加到中;
7)按前面所述的最大最小内角准则对
Figure A200810197121D001324
中所有三角面片进行优化即可得到Ai的Delaunay三角剖分。
(2)基于桥边的环形边界实体区域的三角剖分方法
环形边界实体区域的三角剖分可以先构建连接内外环的桥边,然后采用单多边形边界实体区域的三角剖分方法进行三角剖分。
对于环形边界,桥边是连接一个外环顶点和一个内环顶点构成的,与外环和内环多边形各边均不相交的双向边。
对A中的任意双多边形边界(Ai,Aj)(Ai,Aj∈Aset,1≤i,j≤(N-1),i≠j, A i &Superset; A j ),设Ai的顶点集为 V A i = { v 0 i , . . . , v M i - 1 i } (Mi为Ai顶点数),Aj的顶点集为 V A j = { v 0 j , . . . , v M j - 1 j } (Mj为Aj顶点数),则的三角剖分方法如下:
1)将单多边形边界实体区域的三角剖分方法中顶点vi可切除的条件修改为:vi为凸顶点,且除
Figure A200810197121D00144
vi
Figure A200810197121D00145
外,
Figure A200810197121D00147
中没有其它顶点位于中;
2)利用上述修改后的三角剖分方法对外边界Ai进行三角剖分,直到中不存在可切除顶点为止。此时,剖分形成的三角面片集为
Figure A200810197121D001410
Ai的顶点集为 V A i = { v 0 i , . . . , v M i &prime; - 1 i }
Figure A200810197121D001412
为余下的顶点数)
3)构造桥边 ( v k i , v l j ) ( 0 &le; k &le; M i &prime; , 0 &le; l &le; M j ) : 任取顶点 V k i &Element; V A i ( 0 &le; k &le; M i &prime; ) , 计算顶点集合:
E B ( v k i , V A j ) = { v | v &Element; V A J , 且除以顶点
Figure A200810197121D001416
和v为起点或终点的边以外,边
Figure A200810197121D001417
与内外边界多边形其它边不相交}
v l j = min v &Element; E B ( v k i , V A j ) | | v k i - v | |
4)根据桥边
Figure A200810197121D001419
构造新多边形Ai,j,其顶点集合为:
V A i , j = { v 0 i , . . . , v k i , v l i , . . . , v 0 j , v M j - 1 j , v l j , v k i , . . . , v M i &prime; - 1 j }
5)采用单多边形边界实体区域的三角剖分方法对Ai,j进行三角剖分,剖分成的三角面片集合记为
Figure A200810197121D001422
6)双多边形边界(Ai,Aj)的三角剖分结果为 R A i &cup; R A I , J .
图4是采用上述三角剖分方法对图2中剖面多变形进行三角剖分的结果。
剖面Ai的三角剖分完成后,将剖分形成的所有三角面片及其顶点信息添加到
Figure A200810197121D00152
Figure A200810197121D00153
中。按步骤三对剖切线<p0,...pN-1>的每条折线段沿扫描方向扫描形成的条状区域对M剖切形成的剖面进行处理。
在步骤三的所有处理过程结束后,
Figure A200810197121D00155
Figure A200810197121D00156
即为剖切形成的两个子三角网格模型的顶点集和三角面片集,剖分完成。
剖切操作仅根据三角网格模型的三角面片集合进行,避免了将三角网格转换为特定的数据结构进行存储、管理和维护所带来的空间和时间复杂性,不仅能提高模型剖切的速度,同时还具有广泛的适应性,在计算机辅助设计/制造、工程施工管理、遥感遥测等领域有着重要的应用价值。

Claims (9)

1.一种三维网格模型的快速剖切方法,其特征是:用直线或无自相交曲线剖切线沿剖切方向扫描成的剖切面,将任意三维网格模型切分为两个封闭的、位于剖切面两侧的子三维网格模型,包括以下步骤:
(1)三维网格模型转换为三角网格模型;
(2)指定剖切方向和剖切线;
(3)三角网格模型剖切。
2.根据权利要求1所述三维网格模型的快速剖切方法,其特征是:步骤(1)中将三维网格模型转换为三角网格模型,通过将三维网格模型的各个多边形面片剖分为三角形面片来实现,转换形成的三角网格模型的数据结构只包括顶点数组和三角面片数组,其中顶点数组的每个元素存储一个顶点的三维坐标、法线向量和纹理坐标等信息,三角面片数组中每三个元素描述一个三角面片,分别存储该三角面片的三个顶点在顶点数组中的索引号。
3.根据权利要求1或2所述三维网格模型的快速剖切方法,其特征是三维网格模型及剖切后形成的子三维网格模型是采用三维多边形面片所围成的用于描述三维实体的空间封闭区域。
4.根据权利要求1所述三维网格模型的快速剖切方法,其特征是:步骤(2)中指定剖切方向是通过指定模型三维空间中的方向矢量完成。
5.根据权利要求1所述三维网格模型的快速剖切方法,其特征是:步骤(2)中指定剖切线是在垂直剖切方向的任意平面内,通过指定顶点序列p0,...PN-1(N≥2)来完成。
6.根据权利要求1或5所述三维网格模型的快速剖切方法,其特征是:剖切线是位于垂直剖切方向平面内的直线或曲线,由顶点序列P0,...PN-1(N≥2)依次连接而成的折线段表示。
7.根据权利要求1所述三维网格模型的快速剖切方法,其特征是:步骤(3)三角网格模型剖切包括以下步骤:首先对三角网格模型中的每个三角面片,判断其是否和剖切面相交,对于和剖切面不相交的三角面片,判断三角面片位于剖切面的正侧或反侧,从而将该三角面片的信息添加到正侧或反侧子三角网格模型的三角面片数组和顶点数组中;对于和剖切面相交的三角面片,(1)计算每个三角面片与剖切面的交点,将每个三角面片剖分为位于剖切面正侧或反侧的两个多边形面片,将正侧和反侧多边形剖分为三角面片后分别添加到正侧和反侧子三角网格模型的三角面片数组和顶点数组中;(2)根据所有三角面片与剖切面的交点计算三角网格模型的剖面多边形;(3)将剖面多边形剖分为三角面片,并将所有三角面片信息添加到正侧和反侧子三角网格模型的三角面片数组和顶点数组中。按上述方法处理完三角网格模型的所有三角面片后,得到的正侧和反侧三角面片数组和顶点数组即构成了正侧和反侧的子三角网格模型。
8.根据权利要求7所述三维网格模型的快速剖切方法,其特征是根据所有三角面片与剖切面的交点计算三角网格模型的剖面多边形的方法为:(1)计算折线段<p0,...PN-1>中的每条线段<Pi,Pi+1>(0≤i≤N-2)沿剖切方向扫描形成的平面条形区域B(Pi,Pi+1);(2)计算每个条形区域B(Pi,Pi+1)和三角网格模型的每个三角面片的两个交点构成的交线,根据条形区域B(Pi,Pi+1)和所有三角面片的交线的邻接关系依次连接各条交线,得到条形区域B(Pi,Pi+1)和三角网格模型相交的交面多边形,线段<p0,...PN-1>中所有线段处理完后得到的所有交面多边形共同构成剖面多边形。
9.根据权利要求7所述三维网格模型的快速剖切方法,其特征是剖面多边形剖分为三角面片的方法为:(1)若剖面多边形不存在内边界,则直接计算剖面多边形的最优三角剖分;(2)若剖面多边形存在一条及一条以上内边界,则依次取最外层和次外层边界形成环形多边形,计算连接环形多边形内外环边界的桥边,然后计算添加桥边后的环形多边形的最优三角剖分。
CNA2008101971214A 2008-09-28 2008-09-28 三维网格模型的快速剖切方法 Pending CN101373543A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101971214A CN101373543A (zh) 2008-09-28 2008-09-28 三维网格模型的快速剖切方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101971214A CN101373543A (zh) 2008-09-28 2008-09-28 三维网格模型的快速剖切方法

Publications (1)

Publication Number Publication Date
CN101373543A true CN101373543A (zh) 2009-02-25

Family

ID=40447694

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101971214A Pending CN101373543A (zh) 2008-09-28 2008-09-28 三维网格模型的快速剖切方法

Country Status (1)

Country Link
CN (1) CN101373543A (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011044713A1 (en) * 2009-10-15 2011-04-21 Thomson Licensing Method and apparatus for encoding a mesh model, encoded mesh model, and method and apparatus for decoding a mesh model
CN102243680A (zh) * 2011-07-21 2011-11-16 中国科学技术大学 一种网格划分方法及系统
CN101923502B (zh) * 2009-11-16 2012-10-24 东南大学 计算机图形中简单多边形的切环剖分方法
CN104715508A (zh) * 2015-02-13 2015-06-17 中南大学 一种网格建模方法及装置
CN105160701A (zh) * 2015-05-13 2015-12-16 西北工业大学 一种应用于遥操作三维视景仿真的三角形相交检测方法
CN105225272A (zh) * 2015-09-01 2016-01-06 成都理工大学 一种基于多轮廓线三角网重构的三维实体建模方法
CN106096620A (zh) * 2016-06-24 2016-11-09 沈阳理工大学 一种基于stl文件提取指定表面网格特征线的方法
CN106649992A (zh) * 2016-11-17 2017-05-10 复旦大学 舰船与尾迹的网格模型的融合与优化方法
CN106909721A (zh) * 2017-02-08 2017-06-30 汽-大众汽车有限公司 一种可编辑断面获取方法和装置
CN106920275A (zh) * 2017-01-24 2017-07-04 天衍智(北京)科技有限公司 一种复杂属性边界三维矢量迭代方法及应用系统
CN106981095A (zh) * 2017-03-15 2017-07-25 浙江大学 一种改进的光滑自由变形算法
CN107610230A (zh) * 2017-09-12 2018-01-19 首都师范大学 一种3d打印数字模型剖切及接口设计方法及应用
CN108171804A (zh) * 2017-12-14 2018-06-15 深圳市毕美科技有限公司 三维模型剖切平面的确定方法及装置
CN109005399A (zh) * 2018-05-03 2018-12-14 成都光魔科技有限公司 一种3d数据加密、压缩方法及一种医疗信息交互系统
CN109100724A (zh) * 2018-08-09 2018-12-28 南京信息工程大学 快速获取雷达反射率数据垂直剖切面三维矢量数据的方法
CN109685914A (zh) * 2018-11-06 2019-04-26 南方电网调峰调频发电有限公司 基于三角网格模型的剖切轮廓自动补面算法
CN110415337A (zh) * 2019-07-12 2019-11-05 广州大学 一种基于影像直线特征的建筑物屋顶面重建方法和装置
CN110633517A (zh) * 2019-09-03 2019-12-31 江西博微新技术有限公司 一种用于三维场景的高效切片方法
CN110647596A (zh) * 2018-06-11 2020-01-03 百度在线网络技术(北京)有限公司 地图数据处理方法和装置
WO2020015210A1 (zh) * 2018-07-19 2020-01-23 平安科技(深圳)有限公司 模型轮廓的切分方法及装置、存储介质、计算机设备
CN111524220A (zh) * 2020-03-18 2020-08-11 上海刻羽信息科技有限公司 三维模型剖切的方法、系统、电子设备和介质
CN112131767A (zh) * 2020-09-04 2020-12-25 内蒙古工业大学 秸秆揉碎机多重耦合噪声的数值预测方法
CN112434356A (zh) * 2020-10-16 2021-03-02 杭州群核信息技术有限公司 一种基于半边模型的造型方法及系统
CN115270242A (zh) * 2022-07-11 2022-11-01 中国建筑西南设计研究院有限公司 一种基于bim的基础大样配筋图生成方法、电子设备、可读介质
CN116433877A (zh) * 2023-04-14 2023-07-14 贝壳找房(北京)科技有限公司 确定物体模型摆放面的方法、电子设备及存储介质

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011044713A1 (en) * 2009-10-15 2011-04-21 Thomson Licensing Method and apparatus for encoding a mesh model, encoded mesh model, and method and apparatus for decoding a mesh model
US8949092B2 (en) 2009-10-15 2015-02-03 Thomson Licensing Method and apparatus for encoding a mesh model, encoded mesh model, and method and apparatus for decoding a mesh model
CN102577442B (zh) * 2009-10-15 2015-06-03 汤姆森特许公司 编码网格模型的方法和装置、编码的网格模型、以及解码网格模型的方法和装置
CN101923502B (zh) * 2009-11-16 2012-10-24 东南大学 计算机图形中简单多边形的切环剖分方法
CN102243680A (zh) * 2011-07-21 2011-11-16 中国科学技术大学 一种网格划分方法及系统
CN102243680B (zh) * 2011-07-21 2013-01-16 中国科学技术大学 一种网格划分方法及系统
CN104715508A (zh) * 2015-02-13 2015-06-17 中南大学 一种网格建模方法及装置
CN105160701A (zh) * 2015-05-13 2015-12-16 西北工业大学 一种应用于遥操作三维视景仿真的三角形相交检测方法
CN105160701B (zh) * 2015-05-13 2017-12-08 西北工业大学 一种应用于遥操作三维视景仿真的三角形相交检测方法
CN105225272A (zh) * 2015-09-01 2016-01-06 成都理工大学 一种基于多轮廓线三角网重构的三维实体建模方法
CN105225272B (zh) * 2015-09-01 2018-03-13 成都理工大学 一种基于多轮廓线三角网重构的三维实体建模方法
CN106096620A (zh) * 2016-06-24 2016-11-09 沈阳理工大学 一种基于stl文件提取指定表面网格特征线的方法
CN106096620B (zh) * 2016-06-24 2019-09-17 沈阳理工大学 一种基于stl文件提取指定表面网格特征线的方法
CN106649992A (zh) * 2016-11-17 2017-05-10 复旦大学 舰船与尾迹的网格模型的融合与优化方法
CN106649992B (zh) * 2016-11-17 2020-05-12 复旦大学 舰船与尾迹的网格模型的融合与优化方法
CN106920275A (zh) * 2017-01-24 2017-07-04 天衍智(北京)科技有限公司 一种复杂属性边界三维矢量迭代方法及应用系统
CN106920275B (zh) * 2017-01-24 2021-05-28 天衍智(北京)科技有限公司 一种复杂属性边界三维矢量迭代方法及应用系统
CN106909721A (zh) * 2017-02-08 2017-06-30 汽-大众汽车有限公司 一种可编辑断面获取方法和装置
CN106981095A (zh) * 2017-03-15 2017-07-25 浙江大学 一种改进的光滑自由变形算法
CN106981095B (zh) * 2017-03-15 2019-05-28 浙江大学 一种改进的光滑自由变形方法
CN107610230A (zh) * 2017-09-12 2018-01-19 首都师范大学 一种3d打印数字模型剖切及接口设计方法及应用
CN107610230B (zh) * 2017-09-12 2020-09-11 首都师范大学 一种3d打印数字模型剖切及接口设计方法及应用
CN108171804B (zh) * 2017-12-14 2021-10-19 深圳市毕美科技有限公司 三维模型剖切平面的确定方法及装置
CN108171804A (zh) * 2017-12-14 2018-06-15 深圳市毕美科技有限公司 三维模型剖切平面的确定方法及装置
CN109005399A (zh) * 2018-05-03 2018-12-14 成都光魔科技有限公司 一种3d数据加密、压缩方法及一种医疗信息交互系统
CN110647596B (zh) * 2018-06-11 2022-04-22 百度在线网络技术(北京)有限公司 地图数据处理方法和装置
CN110647596A (zh) * 2018-06-11 2020-01-03 百度在线网络技术(北京)有限公司 地图数据处理方法和装置
WO2020015210A1 (zh) * 2018-07-19 2020-01-23 平安科技(深圳)有限公司 模型轮廓的切分方法及装置、存储介质、计算机设备
CN109100724B (zh) * 2018-08-09 2022-05-10 南京信息工程大学 快速获取雷达反射率数据垂直剖切面三维矢量数据的方法
CN109100724A (zh) * 2018-08-09 2018-12-28 南京信息工程大学 快速获取雷达反射率数据垂直剖切面三维矢量数据的方法
CN109685914B (zh) * 2018-11-06 2021-02-05 南方电网调峰调频发电有限公司 基于三角网格模型的剖切轮廓自动补面方法
CN109685914A (zh) * 2018-11-06 2019-04-26 南方电网调峰调频发电有限公司 基于三角网格模型的剖切轮廓自动补面算法
CN110415337A (zh) * 2019-07-12 2019-11-05 广州大学 一种基于影像直线特征的建筑物屋顶面重建方法和装置
CN110415337B (zh) * 2019-07-12 2021-03-23 广州大学 一种基于影像直线特征的建筑物屋顶面重建方法和装置
CN110633517B (zh) * 2019-09-03 2023-07-25 江西博微新技术有限公司 一种用于三维场景的高效切片方法
CN110633517A (zh) * 2019-09-03 2019-12-31 江西博微新技术有限公司 一种用于三维场景的高效切片方法
CN111524220B (zh) * 2020-03-18 2021-11-05 上海刻羽信息科技有限公司 三维模型剖切的方法、系统、电子设备和介质
CN111524220A (zh) * 2020-03-18 2020-08-11 上海刻羽信息科技有限公司 三维模型剖切的方法、系统、电子设备和介质
CN112131767A (zh) * 2020-09-04 2020-12-25 内蒙古工业大学 秸秆揉碎机多重耦合噪声的数值预测方法
CN112131767B (zh) * 2020-09-04 2023-02-28 内蒙古工业大学 秸秆揉碎机多重耦合噪声的数值预测方法
CN112434356A (zh) * 2020-10-16 2021-03-02 杭州群核信息技术有限公司 一种基于半边模型的造型方法及系统
CN115270242A (zh) * 2022-07-11 2022-11-01 中国建筑西南设计研究院有限公司 一种基于bim的基础大样配筋图生成方法、电子设备、可读介质
CN116433877A (zh) * 2023-04-14 2023-07-14 贝壳找房(北京)科技有限公司 确定物体模型摆放面的方法、电子设备及存储介质
CN116433877B (zh) * 2023-04-14 2024-02-23 贝壳找房(北京)科技有限公司 确定物体模型摆放面的方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN101373543A (zh) 三维网格模型的快速剖切方法
CN101441780B (zh) 三维网格模型的剖切方法
CN106683167B (zh) 复杂建筑物高精度模型自动建模方法
EP1881458B1 (en) Computer-implemented process for creating a parametric surface
JP4783100B2 (ja) 境界データのセル内形状データへの変換方法とその変換プログラム
Chougrani et al. Lattice structure lightweight triangulation for additive manufacturing
CN102521863B (zh) 一种基于粒子系统的三维流体标矢量统一动态表示方法
CN102262694B (zh) 从第一和第二建模对象计算结果闭合三角化多面体表面
CN103226844B (zh) 一种基于空间数据结构体系的三维地质巷道建模方法
CN109377561A (zh) 一种基于共形几何的数模表面网格生成方法
US20240153123A1 (en) Isogeometric Analysis Method Based on a Geometric Reconstruction Model
CN106600710B (zh) 一种几何网格模型邻接拓扑关联的层切多连通域构建方法
Lo Finite element mesh generation and adaptive meshing
CN108776993A (zh) 带有孔洞的三维点云的建模方法及地下电缆工井建模方法
CN109571961B (zh) 一种复杂非均质体参数化模型的切片及支撑点获取方法
CN102194253A (zh) 一种面向三维地质层面结构的四面体网格生成方法
CN104331931B (zh) 一种面向油藏数值模拟的地质断裂层面pebi网格处理方法
JP2005038219A (ja) 境界表現データからボリュームデータを生成する方法及びそのプログラム
Bern et al. Triangulations and mesh generation
CN108256218B (zh) 一种基于实测腰线数据的地下连通巷道精细建模方法
CN116229015B (zh) 一种基于2N-Tree带附面层的贴体笛卡尔网格生成方法
CN103366402B (zh) 三维虚拟服饰的快速姿态同步方法
CN112395794B (zh) 一种基于剖分技术的参数化边坡模型自动构建方法
CN107886569A (zh) 一种基于离散李导数的测度可控的曲面参数化方法及系统
CN113421336B (zh) 动态水域的体绘制方法及装置、存储介质、电子设备

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

Open date: 20090225