CN102262694A - 从第一和第二建模对象计算结果闭合三角化多面体表面 - Google Patents

从第一和第二建模对象计算结果闭合三角化多面体表面 Download PDF

Info

Publication number
CN102262694A
CN102262694A CN201110177608A CN201110177608A CN102262694A CN 102262694 A CN102262694 A CN 102262694A CN 201110177608 A CN201110177608 A CN 201110177608A CN 201110177608 A CN201110177608 A CN 201110177608A CN 102262694 A CN102262694 A CN 102262694A
Authority
CN
China
Prior art keywords
triangle
polygon facet
modeling
polyhedron
winding number
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.)
Granted
Application number
CN201110177608A
Other languages
English (en)
Other versions
CN102262694B (zh
Inventor
F·沙扎尔
A·利厄捷
N·蒙塔纳
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.)
Dassault Systemes SE
Dassault Systemes of America Corp
Original Assignee
Dassault Systemes of America Corp
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 Dassault Systemes of America Corp filed Critical Dassault Systemes of America Corp
Publication of CN102262694A publication Critical patent/CN102262694A/zh
Application granted granted Critical
Publication of CN102262694B publication Critical patent/CN102262694B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Architecture (AREA)

Abstract

本发明涉及在计算机辅助几何设计系统中的计算机实现的处理,用于从第一和第二建模对象计算结果闭合三角化多面体表面。由第一闭合三角化多面体表面建模第一建模对象,以及由第二闭合三角化多面体表面建模第二建模对象。

Description

从第一和第二建模对象计算结果闭合三角化多面体表面
技术领域
本发明涉及计算机程序和系统的领域,并且更具体地说涉及计算机辅助几何设计(CAGD)和三维多面体实体的仿真的领域。
背景技术
众所周知,辅助计算技术包括计算机辅助几何设计或CAGD,其与在CAD和CAM系统中以适合于计算机计算的形式表示对象的软件解决方案有关。计算机辅助设计(或CAD)与创造产品设计的软件解决方案有关。类似地,CAE是计算机辅助工程的缩写,例如,其与仿真未来产品的物理行为的软件解决方案有关。CAM代表计算机辅助制造,以及典型地包括定义制造处理和操作过程的软件解决方案。
市场上提供了许多用于零件、零件的组件及其产品的设计的系统和程序,比如由Dassault Systèmes提供的商标为CATIA(计算机辅助三维交互应用程序)的系统和程序。CATIA是多平台CAGD/CAD/CAM/CAE的软件套件,一般称为3D产品生命周期管理(PLM)软件套件。它支持多阶段产品开发(CAx),范围从对象形状的概念化(CAGD),经过设计(CAD)和制造(CAM),直到分析(CAE)。通过应用程序接口(API),这个软件套件是可定制的。一些版本在专用API下可以适用于各种编程语言。
这些所谓的CAGD/CAD系统特别允许用户构造和操纵复杂的对象或对象组件的三维(3D)模型。CAD系统因此通过使用边或线、在某种情况下通过使用小面,来提供建模对象的表示。这些CAD系统将零件或零件的组件作为建模对象来管理,其主要是几何形状的说明。特别地,CAD文件包括从其生成几何形状的说明。从几何形状产生表示。说明、几何形状和表示存储于单个和多个CAD文件中。CAD系统包括用于向设计者表示建模对象的图形工具;这些工具专门用于复杂对象的显示——CAD系统中表示一个对象的文件的典型大小对一个零件而言可扩展到1M字节的范围,而一个组件可以包括上千个零件。CAD系统管理存储于电子文件中的对象模型。
用已知的CAGD/CAD系统设计一个机械零件可以视为定义所述零件的几何形状和维度以适合功能和制造要求。主要地,结果形状是基本特征的组合,比如,设计者创建的板状物、袋状物、沟槽、杆状物等等。通过复杂的几何和拓扑运算,CAGD/CAD系统生成实体(机械零件)的边界表示,例如闭合且有向的表面。
在例如几何设计(CAGD)、机器加工仿真、机器人技术或数字实体模型的领域中,扫描体的概念是已知的。给定一个实体,在下文中被称为“轮廓”,及其轨迹,我们将轮廓沿着所述轨迹的全部位置的并集称之为扫描体。扫描体的表示可以用于设计形状、对材料删除或添加的处理进行仿真、检测碰撞和计算移动的零件和机械装置的间隙。例如,扫描体的计算对确定在工作期间处于震动状态的车辆马达所需空间是有用的。此外,当由于减震器的作用而使得轮子左转、右转、上升和下降时,扫描体的计算对确定车轮的所需空间是有用的。此外,扫描体对确定制造工具所需的空间是有用的。
所谓扫描体的计算已经出现在2008年11月7日的欧洲专利申请No.08291047.2的欧洲专利申请中。
多面体建模和处理在CAGD的上下文中是普遍存在的。事实上,对多面体进行鲁棒并精确的布尔操作(例如,并集、交集、差集)在上下文中是基本要求。这样的操作符的工业实现使用坐标的浮点表示或整数表示以及所谓的epsilon编程试探法。
概略地讲,epsilon编程试探法是用“接近epsilon”相等测试|x-y|≤ε代替相等测试x=y,其中ε是传统的数字阈值符号。细节可见Lecture Notes InComputer Science,2008,Springer,D.Michelucci、J.M.Moreau、S.Foufou的“Robustness and Randomness”。
从理论的观点看,基于浮点范例的通常几何建模和处理缺乏严密的和科学的基础。在实践中,开发基于浮点框架的鲁棒布尔操作符是困难、昂贵的,并且与其说是一门科学更不如说是一门技术。的确,浮点取整误差可以包括组合的不一致,比如拓扑不一致。
epsilon编程范例允许克服这些不一致,但有效的理论框架不支持基于epsilon编程的技术:的确,它们需要基于逐个案例的技术,其使得实现完全的鲁棒性难以达成。
可替代地,近期的实现使用了基于精确断言技术的精确计算范例,细节可见Journal of Computing and Information Science in Engineering,2001第1-143页上C.M.Hoffmann的“Robustness in geometric computations”、Handbook of discrete and computational geometry,1997的第653-668页上C.K.Yap的“Robust geometric computation”和ACM Transactions on Graphics(TOG),1991的第10卷第1期第71-91页上的M.Karasick、D.Lieber以及L.R.Nackman的“Efficient Delaunay triangulation using rationalarithmetic”。
在精确计算范例中,当必须构造某种几何形状时,必须在结果中使用有理数或代数数字表示,这导致了消耗大量时间和空间的算法。在实际生活中的CAGD应用中,几何处理算法的输入通常是上一个的输出,纯精确计算方法是不可能的,原因是它会引起数字表示的指数级增长。
因此,将有理数的输出坐标“取整”为浮点数输出坐标是必要的。不幸的是,这样的取整过程通常并不安全。如图1所示,的确,此取整可能产生局部自相交。多边形4是有效的,因为没有自相交。背景网格表示经取整的数值。取整就是用最接近网格的点来代替初始多边形的每个顶点。虚线多边形2是黑色多边形的取整结果,此多边形2由于自相交3因而是无效的。
这样的自相交使结果无效,因为不允许自相交。此外,自相交可能使得其它算法失败。
具有多面链的实体的常规多面表示之间的自然关系已经在以下两篇论文中着重强调:1989年4月的第21卷第3期Computer Aided design,O.Gunther、E.wong“Convex polyhedral chains:a representation for geometricdata”,以及1998年第22卷第5期Comput.& Graphics第611-619页,F.R.Feito、M.Rivero“Geometric modeling Based on simplicial chains”。
在第一篇论文中,作者建议通过一种CSG(构造实体几何)来表示实体。该链被表示为多面体的线性组合,每个多面体通过其相关联的半空间的有限集来表示。执行关于该表示的建模操作符(比如布尔操作)不需要构造任何明显的顶点,因为该方法的鲁棒性精确避免了基于表示的顶点。
第二篇论文示出了在相应链上特别是在所谓的“法线链”表示上,布尔操作符和代数操作符之间的简单关系,其中该链被表示为有向单形的线性组合,共享所有起点作为它们的顶点之一。例如,两个实体的相交,通过各自n和m个四面体的链形式和来表示,存在于相应n*m对四面体的相交的n*m个三角剖分的形式和中。
两篇论文都着重强调了具有多面链的实体的常规多面表示之间的自然关系。然而,这些论文依赖布尔操作,这些布尔操作并非一般的布尔操作符。
事实上,所有的CAGD系统通过同样的结构实现布尔操作。算法的细节可以在一个CAGD系统和另一个之间变化,但主要步骤是相同的。布尔操作的输入是两个由它们的有效边界表示定义的实体A和B。有效边界表示意味着实体的边界是没有自相交的闭合表面。标准布尔操作是并集、交集和差集,通常记为∪、∩和—。
传统算法强烈地依赖于输入实体是有效的并且提供有效的实体的假设。换而言之,边界实体A和B没有任何自相交。与图2-7有关的下文为传统算法的步骤。
1.输入由其有效边界表示定义的两个实体A和B(图2);
2.用实体B的边界修整实体A的边界,并且反之亦然(图3);
3.针对实体B,定位实体A的边界的每个部分。实体A的边界的一部分在实体B内部或外部(图4)。
4.针对实体A,定位实体B的边界的每个部分。实体B的边界的一部分在实体A内部或外部(图5)。
5.根据布尔操作类型,丢弃无用的边界的部分:
(Ⅰ)并集A+B:丢弃实体B内的实体A的边界的一部分和实体A内的实体B的边界的一部分。
(Ⅱ)交集A·B:丢弃实体B外的实体A的边界的一部分和实体A外的实体B的边界的一部分。
(Ⅲ)差集A-B:丢弃实体B内的实体A的边界的一部分和实体A外的实体B的边界的一部分(图6)。
6.通过将上一步提供的边界的一部分合并来合成结果实体(图7)。
总结以上分析,现有技术对于取整误差表现太过敏感,这是因为通常多面表示依赖于数值。的确,现有技术多面体的情形可能产生自相交,所以根据现有技术的有效标准使得结果不一致。因此,现有技术的方案缺乏鲁棒性,因为其有效性可能受到影响。
因此,为了这些鲁棒且一般布尔操作符,存在对鲁棒且一般布尔操作符以及用于计算建模对象边界的精确方法的需要。
发明内容
根据第一方面,本发明被体现为一种计算机辅助几何设计系统中的计算机实现的处理,用于从第一和第二建模对象计算结果闭合三角化多面体表面,由第一闭合三角化多面体表面建模第一建模对象,以及由第二闭合三角化多面体表面建模第二建模对象。该处理包括:
计算所述第一建模对象的三角形和所述第二建模对象的三角形之间的相交;
将所述第一和第二建模对象的三角形划分为与所述相交邻近的多边小面;
为每个三角形和每个多边小面计算两对卷绕数p和q,其中,每对卷绕数的第一卷绕数是从所述第一闭合三角化多面体表面计算的并且每对卷绕数的第二卷绕数是从所述第二闭合三角化多面体表面计算的;
为每个三角形和每个多边小面计算系数k,用函数
Figure BSA00000527311000051
计算所述系数,所述函数
Figure BSA00000527311000052
的输入为每个三角形和每个多边小面的两对卷绕数p和q;
根据所计算的系数选择三角形和多边小面;
三角化所选择的多边小面;并且
用所选择的三角形和三角化的所选择的多边小面获得所述结果闭合三角化多面体表面。
在实施例中,该处理可以包括一个或多个以下特征:
由闭合三角化多面体表面建模的所述第一或第二建模对象中的至少一个包括自相交;计算三角形之间的相交的步骤还包括:计算由闭合三角化多面体表面建模的所述第一或第二建模对象中的所述至少一个的三角形之间的相交;
计算至少一个区域,其中,区域包括:三角形和/或多边小面的集合,所述三角形和/或多边小面彼此邻近并且由所计算的相交中的一个定界;
确定所述区域的所有三角形和/或多边小面,所述三角形和/或多边小面与公共计算的相交邻近,每个三角形和/或多边小面包括:根据所述每个三角形和/或多边小面自身的几何形状和自身的方向定义的法线向量;为给定的三角形或给定的多边小面计算两对卷绕数p和q;从所述给定的三角形或所述给定的多边小面开始,根据径向顺序,围绕所计算的相交旋转;检测与所计算的相交邻近的其它三角形和/或多边小面的交叉;在每次交叉之后,根据所交叉的三角形和/或多边小面的法线向量的方向来更新所述两对卷绕数p和q;
根据所述三角形和多边小面的法线向量,所述第一对卷绕数Cbelow在所述三角形和多边小面下面;根据所述三角形和多边小面的法线向量,所述第二对卷绕数Cabove在所述三角形和多边小面上面;
其输入为每个三角形和每个多边小面的两对卷绕数p和q的函数
Figure BSA00000527311000061
执行以下操作中的一个:
Figure BSA00000527311000062
Figure BSA00000527311000064
当所计算的系数k不为0时,选择所述三角形和多边小面;
在计算相交的步骤处,三角形的在所述第一建模对象的三角形和所述第二建模对象的三角形之间的公共边或公共顶点被排除;
通过使用精确算法来执行计算相交的步骤;
在划分三角形的步骤之后,计算表示所计算的相交的覆盖物的步骤;
所计算的覆盖物具有有理数坐标。
根据一方面,本发明被体现为一种存储在计算机可读介质上的计算机程序,用于从第一和第二建模对象计算结果闭合三角化多面体表面,所述第一建模对象由第一闭合三角化多面体表面建模并且所述第二建模对象由第二闭合三角化多面体表面建模,所述计算机程序包括:用于使得计算机执行权利要求1至11中的任何一个所述的处理的步骤的代码模块。
根据一方面,本发明被体现为一种用于从第一和第二建模对象计算结果闭合三角化多面体表面的装置,所述第一建模对象由第一闭合三角化多面体表面建模并且所述第二建模对象由第二闭合三角化多面体表面建模,所述装置包括:用于执行权利要求1至11中的任何一个所述的处理的步骤的模块。
附图说明
现在详细阐述一个体现本发明的系统和依据本发明的处理,其与附图相关并作为非限制性的示例,其中:
图1是一个由从有理数到浮点数的坐标取整而产生的局部自相交的例子;
图2到7示例了用于对两个实体的边界进行布尔操作的传统算法的步骤;
图8和9是单形2环的支集和补集的例子;
图10阐明了图8和9的自相交的单形2环的卷绕数;
图11示例了由图10的正卷绕数定义的实体;
图12到17是阐明了一般布尔操作的定义的例子;
图18是一个用于实施本发明的计算结果闭合三角化多面体表面的处理流程图;
图19到23是阐明了图18描述的处理的例子;
图24和25是折叠和非折叠边的例子;
图26和27是卷绕数传播算法的例子;
图28到30阐明了图12到15和图19到22所示的对象的三维表示。
具体实施方式
本发明涉及一种在计算机辅助几何设计系统中的计算机实现处理,用于从第一和第二建模对象计算结果闭合三角化多面体表面。通过第一闭合三角化多面体表面建模第一建模对象,以及通过第二闭合三角化多面体表面建模第二建模对象。该处理包括计算第一建模对象的三角形和第二建模对象的三角形的相交的步骤。接下来,将第一和第二建模对象的三角形划分成邻近所述相交的多边小面。然后,为每个三角形和每个多边小面计算两对卷绕数(记为p和q)。从第一闭合三角化多面体表面计算每对卷绕数的第一卷绕数,以及从第二闭合三角化多面体表面计算每对卷绕数的第二卷绕数。然后,为每个三角形和每个多边小面计算系数(记为k)。用函数
Figure BSA00000527311000081
计算该系数,该函数的输入为每个三角形和每个多边小面的两对卷绕数(记为p和q)。接下来,根据所计算的系数选择三角形和多边小面。三角化多边小面,以及用所选择的三角形和三角化的所选多边小面获得结果闭合三角化多面体表面。
有利的,本发明提供了一种通用的、有效的和鲁棒的适于快速和精确计算第一和第二建模对象之间的布尔操作的方法,第一和第二建模对象由闭合三角化多面体表面建模并被表示为多面体环,比如单形2环。操作对象的有效性检验更快了,因为不必验证第一和/或第二建模对象是否具有自相交。因而,唯一的检验标准是第一和第二建模对象的密封性。此外,如果考虑该密封性的标准,本发明就可以保证结果的质量。换而言之,可以对第一和/或第二建模对象进行连续的操作,而不会引起失败。由于若干操作可以连续进行,因此鲁棒性增强了。而且,由于通过该对卷绕数的计算(例如仅保持正的卷绕数)结果内部和外部空间的概念,操作也变得通用化。
单形复合体(simplicial complex)是由“胶粘的”点、线段、三角形以及(更一般地说)其p-维等价物而构造的拓扑空间。使用单形复合体的优点之一是对任何维度m而言,它们的性质都变得一般化。由于简单的数学操作使得单形复合体可以计算建模对象的边界,与在2008年11月7日的申请号No.08291047.2欧洲专利申请第2-5页中描述的其他方法相比,其需要更少的资源。特别地,单形复合体提供闭合和拓扑一致的多面体表示。尽管这种表示可能自相交,但其具有组合密封性。特别地,如果向输出施加小扰动和浮点取整,那么其仍保持有效性(拓扑正确性和密封性),因而提供了鲁棒性。
单形2链(simplicial 2-chain)是单形复合体的一个特殊情况。在三维欧式几何空间中的单形2链由顶点的有限集合和三角形的集合定义,该顶点通过在3D空间的它们的坐标给定。每个三角形通过有序的三个顶点标记(index)和定义其重数(multiplicity)的整数来定义。包括同时改变三角形的重数的符号以及定义其的三元组的顺序不会改变该链。单形2环是满足下文定义的零边界条件的单形2链。
有利地,同现有技术相比本发明提供鲁棒性,因为表示实体的单形2环的有效性标准是纯组合的:不像一般多面体表示,其不依赖于数值。
特别地,所提出的一般布尔操作符是抗数字取整的,而且坐标的取整并不影响操作对象的有效性。例如,利用浮点算法对操作对象的顶点施加旋转,这维持了组合结构且不会影响其有效性。相反地,对现有技术的多面体施加同一旋转(一个的确非常普通的操作)可能产生自相交,因此根据现有技术的有效性标准使得结果不一致(如上面参照图1讨论的)。
换而言之,本发明是一般布尔操作符,其用于用单形2环表示实体,该单形2环的顶点坐标使用固定长度数表示,比如整数或浮点。大致而言,单形2环是一种可以以自相交为特征的闭合三角化多面体表面。
现在参考图8,给定一个标记为C的单形2环。C的支集(support)|C|定义为单形2环C的所有三角形的并集。因此支集|C|是3D空间R3的子集。在图8中,|C|是以两个自相交81和82为特征的C的支集。
“多面体环”(例如标记为C的单形2环)的“支集”被定义,其为多面体环的所有三角形的并集。3D空间中多面体环的支集的补集的连接部分被称为3D单元。仅一个3D单元没有边界并且被称为“外部单元”。
现在参考图9,|C|的3D补集,标记为R3-|C|,包括至少两个连接部分。灰色区域表示|C|的补集的连接部分。有四个连接部分91、92、93和94。在四个部分中,“外部”91是无界的。
如图10所示,|C|的补集的每个点都和一个称为卷绕数的定义的很好的整数相关联。卷绕数在|C|的补集的每个连接部分92、93和94上为常数,且没有对|C|定义任何卷绕数。
给定一个多面体环,比如标记为C的单形2环,如上所述C的每个三角形通过其三个顶点的排序被定向并且这个排序定义了法向量。此外,C的每个三角形具有整数重数。给定3维空间中的不属于任何三角形的来自C的点X,关于C的X的卷绕数是按照下文所定义的整数W。
出于说明的目的,提醒一下,多面体环(例如单形2环)考虑一个称为零边界条件的条件。当多面体环满足零边界条件时,多面体环具有密封性质。的确,多面体环是有向单形体的集合,该有向单形体具有赋值给每个单形体的有符号整数(称为重数)。例如,边的重数是共享同一端顶点的多个边的数量。
正如图10所示,考虑到一个在X处开始且没有与C的边相交的有向半线△。这样的半线△一直存在。称δ为单位向量,其定义△的方向为从X指向无穷。当△与C的三角形T相交时,如果δ与T的法线nT的点积为正,我们说△与T前向交叉(cross),如果为负,则后向交叉。它不能为0,因为如果为0就意味△与C的至少一个边相交(intersect)。
用值W=0初始化整数W。每次△与具有重数μT的C的三角形T交叉,如果△前向交叉T就增加μT的W,以及如果△后向交叉T就减少μT的W。这可以记为W:=W+sign(nT·δ)μT
结果数W(X,C)被称为3维空间中点X(给定点)的关于C的卷绕数(有时也称为3D卷绕数)。其不依赖于半线△且在任何3D单元中其为常数,这意味着对相同3D单元中所有点X而言,W(X,C)具有相同的值。特别地,对外部单元中的所有点X而言,W(X,C)=0。
本发明使用了卷绕数的概念。现有技术中已经很好地为卷绕数概念的二维版本提供了许多文献。在现有技术中也为三维卷绕数作为数学的“拓扑度”的应用提供了许多文献,例如,参见ISBN-13号为978-0691048338,普林斯顿大学出版的修订版(1997年11月24日)John Willard Milnor的书“Topology from the differentiable point of view”的第4和5章。在说明书的余下部分,术语卷绕数和三维卷绕数将被无差别地使用。
图10阐明了用自相交两次的二维回路(planar contour)计算卷绕数。线段方向定义法向量。二维回路的方向为从右到左。给定一个半线△上的点X,它的卷绕数W的计算是初始化W:=0并沿着半线△从X向无穷(朝向图的右侧)移动。在这个运动期间,当与回路交叉时,增加W:=W+1或减少W:=W-1(如图所示)。
作为卷绕数计算的结果,单形2环C按以下方式定义了实体:如图11所示,该实体是具备正卷绕数的点集合的闭合物。这个单形2环的集合包括一般多面体的有向边界的集合,该一般多面体的顶点具有浮点坐标。然而,不像经典多面体边界,单形2环通常允许自相交。
在进一步讲述之前,有必要总结一下熟悉的概念“内部”、“外部”和布尔操作。
图12表示了一个单形2环A,图13表示了两个单形2环B。图12-17以及19-23讨论了三维对象,但出于简化目的,只以二维对象为例进行说明。顺便提及,图28-30分别示出了图12、图13以及图14和19所示的对象的三维表示。A是矩形而B是双三角形。A和B与它们各自的方向以及卷绕数一起被单独地表示出来。A是符合规则的且表示了符合规则实体的边界。B具有自相交,并且如前文所讨论的,根据现有技术的实体的有效性标准,B是符合规则的。
WA:R3-|A|→Z和WB:R3-|B|→Z为各自的卷绕数函数。让
Figure BSA00000527311000111
:Z×Z→Z成为通过给定两个整数来计算一个整数的函数。让我们通过组合函数
Figure BSA00000527311000112
和卷绕数来定义函数ψ:D→Z,
Figure BSA00000527311000113
其中D=R3-(|A|∪|B|)是3D域,其中WA和WB在该3D域中被很好地定义。明显地,函数ψ在D=R3-(|A|∪|B|)的每个连接部分上为常数。如果存在一个实数ε0>0使得对所有的0<ε≤ε0,函数ψ被称为在点x∈|A|∪|B|的邻近区域上局部为常数,对于以x为中心ε为半径的被标记为O(χ,ε)的开放球,函数ψ被限制为单值函数。换而言之,函数ψ在x∈|A|∪|B|的“每一侧”上具有相同的常数值。
然后,通过定义,函数ψ的边界是x∈|A|∪|B|的点的集合,其中ψ并非局部单值。这定义了结果单形2环的几何轨迹。让
Figure BSA00000527311000115
成为其中ψ在这点为局部两值的点。让ψ+和ψ-成为这样两个值,根据由初始操作对象决定的方向,ψ+(对应地ψ-)是在
Figure BSA00000527311000116
的正侧的值(对应地
Figure BSA00000527311000117
的相反一侧)。然后,ψ-+的差定义了在点x的有符号的重数。因此,确定了针对
Figure BSA00000527311000118
的所有三角形的重数。
因此,定义两个单形2环A和B之间的通用布尔操作就是定义函数
Figure BSA00000527311000119
然后,结果单形2环就是与三角形重数相关联的
Figure BSA000005273110001110
现在参考图14,针对操作(例如,计算A和B的并集、以及D=R3-(|A|∪|B|)的每个连接部分上的一对值(WA,WB))在适当位置表示两个单形2环A和B。从单形2环A计算一对值的第一个数,并且从单形2环B计算每对卷绕数的第二个卷绕数。在图15中,一对值(WA,WB)通过函数
Figure BSA000005273110001111
被其结果代替,在该例子中,函数
Figure BSA00000527311000121
被定义为乘积
Figure BSA00000527311000122
在图16中,虚线表示|A|∪|B|的部分,其中函数ψ(x)=WA(x)WB(x)为局部单值,这意味着|A|∪|B|在局部划分成其中ψ具有同一值的两个区域。
在图17中,附图表示两个单形2环A和B上进行的操作的结果:通过保留部分|A|∪|B|获得一个新环,其中函数ψ并非局部单值。根据初始方向和函数ψ的值,针对从操作对象B继承的边,上三角形边的重数是0-(-1)=1,而针对从操作对象A继承的边,上三角形边的重数是-1-0=-1。下三角形边的重数为1-0=1。
因此,给定两个单形2环A和B以及给定函数根据本发明的处理计算了由
Figure BSA00000527311000124
定义的结果单形2环。可以理解的是,下面的函数
Figure BSA00000527311000125
重定义了对规则实体的一般布尔操作:两个实体的并集由函数
Figure BSA00000527311000126
定义,交集由函数
Figure BSA00000527311000127
定义,以及差集由函数
Figure BSA00000527311000128
定义。
此外,布尔操作符可以简化通过应用边折叠过程而获得的结果,该边折叠过程由某种弦误差准则驱动。例如,可以在没有显著几何信息丢失的情况下对边进行折叠,该边的长度与由坐标取整引起的扰动的幅度的数量级相同。有利地,即使对两个单形2环A和B的操作可能引起边界的自相交,结果也并不会无效,这是因为由本发明的处理产生的单形2环是可以以自相交为特征的闭合三角化多面体表面。
现在参考图18,描述了根据本发明的处理的实施例。
在步骤S10和S12,输入由第一闭合三角化多面体表面建模的第一建模对象以及由第二闭合三角化多面体表面建模的第二建模对象。典型地,第一和第二建模对象为单形2环。如果需要,有符号整数可以与第一和第二闭合三角化多面体表面的三角形相关联,以记录方向反转和/或重数。
在步骤S20,选择函数:Z×Z→Z。函数的选择允许选择一个操作以在第一和第二建模对象之间执行。一般而言,函数
Figure BSA000005273110001211
重定义了一般布尔操作,比如两个实体的并集、交集和差集。取决于使用本发明的应用目的,可以定义任何函数例如,当处理自相交对象时(由于空间移动产生),一个函数
Figure BSA000005273110001213
的定义可以决定感兴趣的空间区域是一个卷绕数为正的区域,而另一个函数
Figure BSA000005273110001214
的定义可以决定感兴趣的空间区域是一个卷绕数为非零的区域。除了重定义一般布尔操作,函数
Figure BSA00000527311000131
的未限制的定义为本发明所提供的设计灵活性。
在实践中,在设计期间,由用户选择函数
Figure BSA00000527311000132
也可以由CAGD系统通过默认的方式选择函数
Figure BSA00000527311000133
然后,在步骤S30,计算第一建模对象的三角形和第二建模对象的三角形之间的相交。相交是两个三角形相交的点、边或多边形。因此,步骤S30在于发现所有的三角形的相交,而不在于发现第一或第二建模对象的三角形的公共边或公共顶点。
可以用几种方法计算相交:例如,使用标准浮点算法以及epsilon编程。在实践中,通过使用精确算法(exact arithmetic)来进行相交计算。当进行数字计算时,精确算法不使用取整和舍位。精确算法方法用于用数值产生鲁棒几何算法。有利地,精确算法能获得正确的对象拓扑结构,因此避免了不一致。
此外,如前文所见,单形2环是能以自相交为特征的闭合的三角化多面体表面。在实践中,第一和/或第二建模对象可以包括自相交,因此,三角形之间的自相交计算还包括计算第一建模对象的三角形和/或第二建模对象的三角形之间的相交。
现在参考图19,输入两个单形2环A和B。第一对象A是图12描述的矩形,而第二对象B是图13描述的包括自相交的双三角形。提醒一下,对象A和B是图28-30所示的三维对象;但出于简化目的,在图19-23中使用了二维对象。在实践中,本领域所公知的,用户输入两个对象。此外,已经确定了对象A和B彼此的位置以使得对象B在对象A之上。典型的,这也是用户完成的。
在图20中,示出了对象A和对象B之间的交点200、202、204和206。此外,对象B的自相交点208也被示出。提醒一下,出于简化目的,在图19-23中对象A和B是以2D的方式表示,而在3D对象A和B的三角形之间所计算的相交是边或顶点。计算相交可以以本领域公知的方法进行,例如使用精确算法。
返回图18,在步骤S40,第一和第二建模对象的三角形被划分成邻近所计算的相交的多边小面。这意味着根据在步骤S30所计算的相交,第一和第二建模对象A和B被细分。
例如,在图21,对象A和B之间的计算的相交点将对象A细分成四个邻近部分(2、10、4、5),而将对象B分为6个邻近部分(1、7、9、3、8、6)。
接下来,在步骤S50,至少计算一个区域。区域包括三角形和/或多边小面的集合,该三角形和/或多边小面彼此邻近并且由计算的相交之一来定界(delimit)。换而言之,区域是第一和第二建模对象A和B沿着所计算相交的边界的一部分。这意味着邻近顶点或边的三角形和/或多边小面的集合形成了一区域,其中第一和第二建模对象A和B在该顶点或边上相接或自相交。
在实践中,建立所计算相交的排列(arrangement)的覆盖物(overlay),该相交将每个三角形划分成多边小面。本领域所熟知地,建立覆盖物就是组合所计算相交。在此阶段,初始对象A和B的每个三角形被细分为多边小面,以使得获得新的表示,该新的表示在数学上定义了对象A和B的相同多面体环。有利地,在三维空间环境中嵌入多面体环的支集联合体。换而言之,新环的多边小面或边的任何的相交对沿着公共边或顶点相交。精确地进行这种构建,这有利地暗示了顶点具有有理数坐标,该顶点由边和三角形的相交或三个三角形的相交产生。新的表示的构建用符号管理,这暗示在大多数情况下,有理数坐标不能被明确地计算。有利地,保存了CAGD系统的资源(例如,CPU、存储器……),因为这些有理数坐标不需要计算。
异常情况可能发生,并且可以按照本领域所公知的方式解决。例如,三角形可能重叠、几个边与一个三角形相交于同一点或者超过三个三角形在一点相接,这些情况都可能发生。这些异常情况中,有一种特殊情况是重叠三角形产生了新的多边小面。在这种情况下,新的所计算的系数k(在步骤S70中被讨论)就是两个重叠三角形的各自系数k之和。
接下来,在步骤S60,为每个三角形和每个多边小面计算两对卷绕数(就是3D卷绕数)p和q。三维对象的一个卷绕数(或3D卷绕数)提供了多面体环的内部和外部空间的概念。例如,对每对卷绕数而言,从第一闭合三角化多面体表面计算第一建模对象,以及从第二闭合三角化多面体表面计算第二建模对象。在此步骤中,在三角形上进行至少一次射线追踪。有利地,为了完全的鲁棒性,此步骤需要精确算法和“单形的仿真”。“单形的仿真”是用几何算法处理退化情况的技术,例如在ISSN号为0730-0301的ACM Transactions on Graphics(TOG),1990年1月的第9卷第1期第66-104页上H.Edelsbrunner EP.Mücke的文件“单形的仿真”中所教导的。
在实践中,为三角形和多边小面的每侧分别计算第一和第二对卷绕数。多边小面(同样适用于三角形)的第一侧被称为下,而第二侧被称为上。多边小面的下和上的概念依赖于基于每个多边小面的法向量的任意的习惯。当然,提醒一下,多面体环的每个三角形由它的三个顶点的排序来给定方向,三个顶点的排序是任意选择的。以及这个排序定义了法向量。
例如在图26中,显示了一个具有公共边的三角形集合E。正如示出的那样每个三角形有自身的法向量。三角形260是有向的,且基于这个方向,法向量被定义并指示了该三角形的“向上”的方向。
因此,根据所述三角形和多边小面的法向量,记为Cbelow的第一对卷绕数在所述三角形和多边小面之下。相反,根据所述三角形和多边小面的法向量,记为Cabove的第二对卷绕数在所述三角形和多边小面之上。
参考图22,示出了第一和第二建模对象A和B的多对卷绕数(wA,wB)。对象B的部分1有两对卷绕数。部分1的第一对卷绕数标记为Cbelow=(0,0)且第二对卷绕数被标记为Cabove=(0,-1)。在这个例子中,部分1的法向量(图21所示)包括该对卷绕数(0,-1)被任意认为在部分1之上。对象A和B的其他部分在下面的表格中被讨论。
在实践中,将在步骤(S50)计算的每个区域与两对(3D)卷绕数相关联。第一对卷绕数是Cbelow=(wA,wB),在所计算的区域(的法向量)紧下方,而第二对卷绕数是Cabove=(wA,wB),在所计算的区域(的法向量)紧上方。与每个计算的区域相关联的两对卷绕数Cbelow=(wA,wB)和Cabove=(wA,wB)是为多边小面(或三角形)而计算的两对卷绕数,该多边小面属于该区域。然后,这对(3D)卷绕数Cbelow和Cabove被传播到邻近区域和三角形。术语“传播”意味着第一对卷绕数Cbelow和第二对卷绕数Cabove散布到新计算的多边小面和/或三角形。换而言之,专用算法被用于计算该区域的其它多边小面的多对(3D)卷绕数。因此,该算法依赖于计算区域,以进行属于该区域的多边小面的该对卷绕数的计算。现在详细描述这个算法。
该算法以计算属于第一计算区域的多边小面(或三角形)的Cbelow和Cabove为开始。多边小面的选择是任意的且不影响此算法的输出。然后这两对卷绕数Cbelow和Cabove被计算到(也可以说它们被传播到)邻近的多边小面。在此阶段,邻近的多边小面可以是另一个计算区域或三角形。需要提醒的是,由定义可知,两个多面体是邻近的,如果他们共享至少一个边。此外,如图24所示,还由定义可知,恰恰被两个多面体共享的边是交叠边(manifoldedge)。也由定义可知,被三个或更多的多面体共享的边是非交叠边。在图25中,非交叠边用四个关联的多面体画出。
现在,参考图26和27,详细说明邻近小面的该对卷绕数Cbelow和Cabove的计算(或传播)。
在图26中,让E成为由四个多面体共享的非交叠边。此边是第一和第二建模对象A和B之间计算的相交:两个水平多面体260和262属于第一建模对象A,两个垂直多面体264和266属于第二建模对象B。顺便提及,注意一下,正如之前讨论的,根据它的几何形状和方向,每个多面体都配备一个法向量。
现在参考图27,假设两对卷绕数Cbelow和Cabove为一个邻近多面体所知,例如多面体260的该对卷绕数Cbelow=(wA,wB)和Cabove=(wA,wB)。多面体围绕边E,以径向顺序(radial order)排序。可以根据围绕边E的旋转来选择径向顺序。例如,从多面体260开始并且逆时针旋转268,与边E邻近的多面体的径向顺序是260、268、262和264。
然后,从给定三角形或给定多边小面开始,根据径向顺序,围绕计算的相交进行旋转。这就意味着,从多面体260开始,多面体268、262和264被接连地交叉。
接下来,检测与计算的相交邻近的其它三角形和/或多边小面的交叉。在每个交叉检测后,更新两对卷绕数。根据交叉的三角形和/或多边小面的法向量方向进行该更新。
更新可以基于以下三条规则实施:
(i)交叉第一建模对象A的多面体将卷绕数wA变成wA+1(分别为wA-1),如果多面体的法向量以径向顺序给定方向(分别以径向顺序的反方向);
(ii)交叉第二建模对象B的多面体将卷绕数wB变成wB+1(分别为wB-1),如果多面体的法向量以径向顺序给定方向(分别以径向顺序的反方向);
(iii)交叉第一建模对象A(分别地B)的多面体不会改变卷绕数wB(分别地wA)。
图27阐明了上文提及的规则的应用。出于简化目的,限制该例为该对卷绕数Cabove=(wA,wB)的计算(或传播)。从具有该对卷绕数Cabove=(wA,wB)的多面体260开始,第一交叉多面体是多面体266。一旦检测到多面体266的交叉,就更新该对卷绕数以使得该更新能将卷绕数wB变成wB-1。因此多面体266的计算的该对卷绕数是Cabove=(wA,wB-1)。类似地,多面体262是交叉的,且因此多面体262的计算的该对卷绕数是Cabove=(wA+1,wB-1)。接下来,在交叉多面体264后,多面体264的计算的该对卷绕数是Cabove=(wA+1,wB)。
从而,因为卷绕数变量是已知的,所以更新与交叠或非交叠的计算的相交邻近的所有计算区域的该对卷绕数Cbelow和Cabove是容易的。可以理解,此算法的优点是降低了卷绕数计算的次数。这是特别有利的,因为保存了系统资源并且大大减少了计算时间。
该对卷绕数的计算也可以在扩展区域实施。扩展区域不包括邻近区域的三角形和/或多边小面的集合。扩展区域包括第一建模对象的邻近三角形集合,其既不与第二建模对象的多面体连接,也不与自相相交连接。因此,可以理解,对相同扩展区域的所有三角形而言,在扩展区域的三角形的初始值Cbelow和Cabove是相同的。这就意味着,扩展区域包括具有相同Cbelow和Cabove的建模对象的最大数目的连接三角形。因此,在扩展区域中,可以将初始计算的该对卷绕数Cbelow和Cabove容易地计算到(也可以说传播到)建模对象的连接三角形。从而,为建模对象的每个连接的三角形,重复在扩展区域中的计算处理。此外,可以理解,根据本发明使得能够有利地增强处理性能,也保存了CAGD系统的资源。
然后,在图18的步骤S70,为第一和第二建模对象的每个三角形和每个多边小面计算系数k。提醒一下,由定义可知,函数ψ的边界
Figure BSA00000527311000171
是x∈|A|∪|B|的点的集合,其中ψ并非局部单值,因此,这定义了结果单形2环的几何轨迹
Figure BSA00000527311000172
ψ+和ψ-是这样的两个值,其中根据由初始操作对象引起的方向ψ+(分别地ψ-)是在的正侧的值(分别地
Figure BSA00000527311000174
的另一侧)。然后ψ-+的差值定义了在点x处一有符号的重数,所以,确定了
Figure BSA00000527311000175
的针对所有三角形的重数。然后,结果单形2环是与三角形重数相关联的
Figure BSA00000527311000176
可以理解,在函数ψ具有整数值的情况下,重数有利地允许获得一个单形2环;否则,函数ψ将仅具有0或1作为值。
用函数
Figure BSA00000527311000181
计算系数k,该函数
Figure BSA00000527311000182
的输入是为第一和第二建模对象的每个三角形和每个多边小面计算的两对卷绕数p和q。在实践中,系数k按照如下计算:这意味着为第一和第二建模对象的每个三角形和每个多边小面计算有符号的重数。
接下来,在步骤S80,根据所计算的系数选择第一和第二建模对象的三角形和多边小面。这里的选择意味着保持选择的三角形和多边小面以获得结果单形2环。在实践中,当系数k不为0时,选择三角形和多边小面。
接下来,在步骤S90,不是三角形的多边小面被三角化。进行三角化是本领域公知的。
然后,在步骤S100,用选择的三角形和三角化的所选择的多边小面获得结果闭合三角化多面体表面。
步骤S60到S100由图20-23阐述。
在图20,表示了对象A和B之间的相交点200、202、204、206和210以及对象B的自相交点208,以及根据所计算的相交细分第一和第二建模对象A和B。
然后,在图21中,示出了扩展区域。扩展区域用图中的数字1到10标识。在这个例子中,对象A的四个邻近点(2,10,4,5)和对象B的六个邻近点(1,7,9,3,8,6)是扩展区域。现在,可以将用于选择结果单形2环的所有系数:Cbelow、Cabove
Figure BSA00000527311000184
关联到每个扩展区域,并且收录在下表中。在下一个表的例子中,
Figure BSA00000527311000185
属于结果单形2环的扩展区域在最右栏中可见。
Figure BSA00000527311000186
Figure BSA00000527311000191
在图23阐明了由扩展区域5、6、7、8、9和10定义的结果单形2环。提醒一下,根据由上表中
Figure BSA00000527311000192
的符号记录的反方向(新方向被阐明了),必须包括扩展区域5。这允许确保结果单形2环的表面方向是全局一致的。
可以理解,前述方法可以应用于任何CAGD系统。本发明可以被体现为系统、方法和计算机程序。本发明可以实现于数字电子电路中,或计算机硬件、固件、常驻软件、微码、软件中,或者在它们的组合中。本发明的装置可以实现于计算机程序产品中,该计算机程序产品有形地被体现在用于由可编程处理器执行的机器可读存储设备中;以及本发明的方法步骤可以通过可编程处理器来执行,该可编程处理器执行指令程序,该程序用于通过操作输入数据并生成输出来执行本发明的功能。
本发明可以有利地实现在一个或多个计算机程序中,在可编程系统上执行的计算机程序包括:至少一个可编程处理器、至少一个输入设备以及至少一个输出设备,其中至少一个可编程处理器耦合以接收来自和去往数据存储系统的数据和指令并且发送去往其的数据和指令。应用程序可以用高级过程或面向对象编程语言或汇编或机器语言实现,如果需要的话;以及在任何情况下,所述语言是可以编译的或解释的语言。
一般而言,处理器可以从只读存储器和/或随机存取存储器接收指令和数据。一个或多个计算机可读介质的任意组合可以用于存储指令。计算机可读介质可以是计算机可读存储介质。计算机可读存储介质可以是,例如而不限于,电子、磁、光学、电磁、红外线或半导体系统、装置或设备、或者前述的任何适当的组合。适于有形体现计算机程序指令和数据的存储设备包括:所有形式的非易失性存储器,包括以半导体存储设备为例,比如EPROM、EEPROM和闪存存储设备;磁盘比如外部硬盘和可擦除硬盘;磁光盘;以及CD-ROM盘。任何前述可以由专门设计的ASIC(专用集成电路)补充或被包括在其中。
计算机可读介质可以是计算机可读信号介质。计算机可读信号介质可以包括具有其中体现计算机可读程序代码的传播数据信号,例如,在基带中或作为载波的一部分。这样的传播信号可以采用任意的各种形式,包括但不限于,电磁、光学或其任何适当的组合。计算机可读信号介质可以是任何计算机可读介质,该计算机可读介质不是计算机可读存储介质,而是可以通信、传播或传输程序以供指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。本发明的优选实施例已经被详细说明。可以理解,可以进行各种变型而不背离本发明的精神和范围。因此,其它实现被在下文的权利要求的范围内。例如,根据优化目的,可以增加整个处理的性能。第一优化可以包括使用过滤断言的概念,例如其在以下文件中描述:1997年29(2)Computer Aided Design,第123-133页,S.Fortune“Polyhedral modeling with multiprecision integer arithmetic”、美国纽约ACM,1993,Proceedings of the ninth annual symposium on Computational geometry第163-172页S.Fortune和C.J.Van Wyk“Efficient exact arithmetic forcomputational geometry”、以及1993年IEEE Symposium on ComputerArithmetic,第242-249页Mohand Ourabah Benouamer、P.Jaillon、DominiqueMichelucci和Jean-Michel Moreau“A lazy exact arithmetic”。
此外,在区间算法中计算所构造顶点的重心坐标。每次调用一个断言,典型地返回决定因素的符号,它试图使用这些区间坐标来决定符号,以及如果不可以,就调用断言的有理数算法版本,如果之前没有完成,该有理数算法版本就首先计算压缩构造顶点的所需重心坐标。
正如图18所示,在其处理的步骤S30中,第一建模对象的三角形和第二建模对象的三角形之间的相交计算可以使用三角形集合中的操作对象的划分来加速,称为面片,其定义如下:
(i)存在以正点积和面片的有向三角形的所有法向量为特征的向量d;
(ii)沿着方向d的投影在平面上没有自相交,该平面正交于该面片的边界的d。
的确,在这种情况中可以看出,面片没有自相交,且测试在不同面片之间的三角形的可能的相交是充分的。如果这些面片定位于空间划分结构,比如体素和八叉树,则可以显著加快步骤S30,如以下文件中描述的:ACMTransactions on Graphics,1990年9(2),第170-197页,P.Brunet和I.Navazo“Fundamental techniques for geometric and solid modeling”、以及Manufacturing and Automation Systems:Techniques and Technologies,1990年48期第347-356页第Ⅱ.B段,C.M.Hoffmann、G.Vanecek“Fundamentaltechniques for geometric and solid modeling”。
例如,如果体素仅包括一个面片,就没有相交。
此外,另一优化可以包括通过弦误差驱动的边折叠的序列来简化结果闭合三角化多面体表面(S100)。的确,因为在先前步骤S30-S90中进行的操作是精确的,可能产生非常小的三角形,可能比浮点数最末数字的加权小很多,该浮点数定义输入操作对象的顶点的坐标。在本发明的处理中,该简化处理是浮点数取整的组合对应物。

Claims (13)

1.一种计算机辅助几何设计系统中的计算机执行的处理,用于从第一和第二建模对象计算结果闭合三角化多面体表面,所述第一建模对象由第一闭合三角化多面体表面建模并且所述第二建模对象由第二闭合三角化多面体表面建模,所述处理包括:
计算所述第一建模对象的三角形和所述第二建模对象的三角形之间的相交(S30);
将所述第一和第二建模对象的三角形划分为与所述相交邻近的多边小面(S40);
为每个三角形和每个多边小面计算两对卷绕数p和q(S60),其中,每对卷绕数的第一卷绕数是从所述第一闭合三角化多面体表面计算的并且每对卷绕数的第二卷绕数是从所述第二闭合三角化多面体表面计算的;
为每个三角形和每个多边小面计算系数k(S70),其中,使用函数
Figure FSA00000527310900011
计算所述系数,所述函数
Figure FSA00000527310900012
的输入为每个三角形和每个多边小面的所述两对卷绕数p和q;
根据所计算的系数选择三角形和多边小面(S80);
三角化所选择的多边小面(S90);并且
用所选择的三角形和三角化的所选择的多边小面获得所述结果闭合三角化多面体表面(S100)。
2.如权利要求1所述的计算机执行的处理,其中:
由闭合三角化多面体表面建模的所述第一或第二建模对象中的至少一个包括自相交;并且
计算三角形之间的相交的步骤还包括:计算由闭合三角化多面体表面建模的所述第一或第二建模对象中的所述至少一个的三角形之间的相交。
3.如权利要求1至2中的一个所述的计算机执行的处理,在划分三角形的步骤之后,还包括步骤:
计算至少一个区域,其中,区域包括:三角形和/或多边小面的集合,所述三角形和/或多边小面彼此邻近并且由所计算的相交中的一个定界。
4.如权利要求3所述的计算机执行的处理,还包括:
确定所述区域的所有三角形和/或多边小面,所述三角形和/或多边小面与公共计算的相交邻近,每个三角形和/或多边小面包括:根据所述每个三角形和/或多边小面自身的几何形状和自身的方向定义的法线向量;
为给定的三角形或给定的多边小面计算两对卷绕数p和q;
从所述给定的三角形或所述给定的多边小面开始,根据径向顺序,围绕所计算的相交旋转;
检测与所计算的相交邻近的其它三角形和/或多边小面的交叉;
在每次交叉之后,根据所交叉的三角形和/或多边小面的所述法线向量的方向来更新所述两对卷绕数p和q。
5.如权利要求1至4中的一个所述的计算机执行的处理,其中,在计算两对卷绕数的步骤处:
根据所述三角形和多边小面的法线向量,所述第一对卷绕数Cbelow在所述三角形和多边小面下面;并且
根据所述三角形和多边小面的法线向量,所述第二对卷绕数Cabove在所述三角形和多边小面上面。
6.如权利要求1至5中的一个所述的计算机执行的处理,其中,其输入为每个三角形和每个多边小面的两对卷绕数p和q的函数
Figure FSA00000527310900021
执行以下操作中的一个:
Figure FSA00000527310900022
Figure FSA00000527310900023
Figure FSA00000527310900024
7.如权利要求1至6中的一个所述的计算机执行的处理,其中,当所计算的系数k不为0时,选择所述三角形和多边小面。
8.如权利要求1至7中的一个所述的计算机执行的处理,其中,在计算相交的步骤处,三角形的在所述第一建模对象的三角形和所述第二建模对象的三角形之间的公共边或公共顶点被排除。
9.如权利要求8所述的计算机执行的处理,通过使用精确算法来执行计算相交的步骤。
10.如权利要求1至9中的一个所述的计算机执行的处理,还包括:在划分三角形的步骤之后,计算表示所计算的相交的覆盖物的步骤。
11.如权利要求10所述的计算机执行的处理,其中,所计算的覆盖物具有有理数坐标。
12.一种存储在计算机可读介质上的计算机程序,用于从第一和第二建模对象计算结果闭合三角化多面体表面,所述第一建模对象由第一闭合三角化多面体表面建模并且所述第二建模对象由第二闭合三角化多面体表面建模,所述计算机程序包括:用于使得计算机执行权利要求1至11中的任何一个所述的处理的步骤的代码模块。
13.一种用于从第一和第二建模对象计算结果闭合三角化多面体表面的装置,所述第一建模对象由第一闭合三角化多面体表面建模并且所述第二建模对象由第二闭合三角化多面体表面建模,所述装置包括:用于执行权利要求1至11中的任何一个所述的处理的步骤的模块。
CN201110177608.8A 2010-05-25 2011-05-25 从第一和第二建模对象计算结果闭合三角化多面体表面 Active CN102262694B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10305555.4A EP2400410B1 (en) 2010-05-25 2010-05-25 Computing of a resulting closed triangulated polyhedral surface from a first and a second modeled object
EP10305555.4 2010-05-25

Publications (2)

Publication Number Publication Date
CN102262694A true CN102262694A (zh) 2011-11-30
CN102262694B CN102262694B (zh) 2016-11-23

Family

ID=42799764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110177608.8A Active CN102262694B (zh) 2010-05-25 2011-05-25 从第一和第二建模对象计算结果闭合三角化多面体表面

Country Status (6)

Country Link
US (1) US8854367B2 (zh)
EP (1) EP2400410B1 (zh)
JP (1) JP5848030B2 (zh)
KR (1) KR101754581B1 (zh)
CN (1) CN102262694B (zh)
CA (1) CA2740669A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159850A (zh) * 2019-12-09 2020-05-15 北京航空航天大学 一种面向平面散点数据的沿流向沟槽叶栅自动生成方法
CN115272379A (zh) * 2022-08-03 2022-11-01 杭州新迪数字工程系统有限公司 一种基于投影的三维网格模型外轮廓提取方法及系统

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9607111B2 (en) * 2010-11-29 2017-03-28 Autodesk, Inc. Spatial information modeling of buildings using non-manifold topology via a 3D geometric modeling kernel and designscript
EP2811463B1 (en) * 2013-06-04 2018-11-21 Dassault Systèmes Designing a 3d modeled object with 2d views
JP6182473B2 (ja) * 2013-09-25 2017-08-16 日本電信電話株式会社 データ分析装置及び方法及びプログラム
EP2874118B1 (en) 2013-11-18 2017-08-02 Dassault Systèmes Computing camera parameters
US10255383B2 (en) * 2014-10-10 2019-04-09 Autodesk, Inc. Rule based three-dimensional (3D) intersection model
EP3032495B1 (en) 2014-12-10 2019-11-13 Dassault Systèmes Texturing a 3d modeled object
US9607414B2 (en) * 2015-01-27 2017-03-28 Splunk Inc. Three-dimensional point-in-polygon operation to facilitate displaying three-dimensional structures
US9836874B2 (en) 2015-01-27 2017-12-05 Splunk Inc. Efficient polygon-clipping technique to reduce data transfer requirements for a viewport
US9916326B2 (en) 2015-01-27 2018-03-13 Splunk, Inc. Efficient point-in-polygon indexing technique for facilitating geofencing operations
US9767122B2 (en) 2015-01-27 2017-09-19 Splunk Inc. Efficient point-in-polygon indexing technique to facilitate displaying geographic data
US10026204B2 (en) 2015-01-27 2018-07-17 Splunk Inc. Efficient point-in-polygon indexing technique for processing queries over geographic data sets
EP3188033B1 (en) 2015-12-31 2024-02-14 Dassault Systèmes Reconstructing a 3d modeled object
US10109105B2 (en) * 2016-07-12 2018-10-23 Nature Simulation Systems Inc. Method for immediate boolean operations using geometric facets
EP4131172A1 (en) 2016-09-12 2023-02-08 Dassault Systèmes Deep convolutional neural network for 3d reconstruction of a real object
CN106325211B (zh) * 2016-11-16 2019-01-04 清华大学 一种基于stl模型交线环的材料去除算法
US10834413B2 (en) * 2018-08-24 2020-11-10 Disney Enterprises, Inc. Fast and accurate block matching for computer generated content
WO2020122882A1 (en) 2018-12-11 2020-06-18 Hewlett-Packard Development Company, L.P. Determination of vertices of triangular grids for three-dimensional object representations
CN109782272A (zh) * 2018-12-30 2019-05-21 中国电子科技集团公司第十五研究所 三维雷达体的布尔融合方法
EP3825956B1 (en) * 2019-11-21 2022-06-22 Dassault Systèmes Processing a 3d signal of a shape attribute over a real object
CN111474899B (zh) * 2020-04-29 2021-02-19 大连理工大学 一种基于三角化的复杂型腔高速数控铣削螺旋路径生成方法
JP7485435B2 (ja) 2020-11-20 2024-05-16 イマゴワークス インコーポレイテッド 仮想ブリッジ基盤の多重集合演算を介したデジタルデンティストリ用3次元モデル生成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445390B1 (en) * 1997-12-29 2002-09-03 The United States Of America As Represented By The Adminstrator Of The National Aeronautics And Space Administration Triangle geometry processing for surface modeling and cartesian grid generation
CN1695151A (zh) * 2002-10-04 2005-11-09 三菱重工业株式会社 计算机辅助设计系统和程序

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6392646B1 (en) * 1999-12-22 2002-05-21 General Electric Co. Iterative determination of the shortest path between two points on a polygonal surface
CA2430068C (en) * 2002-05-30 2013-04-16 Universite Laval Construction members for three-dimensional assemblies
JP3950976B2 (ja) 2004-01-09 2007-08-01 独立行政法人情報通信研究機構 3次元幾何データの無矛盾化方法及びそのシステム
US7408548B2 (en) * 2005-06-30 2008-08-05 Microsoft Corporation Triangulating procedural geometric objects
WO2007132746A1 (ja) * 2006-05-11 2007-11-22 Panasonic Corporation 処理装置
US20080225037A1 (en) * 2007-03-15 2008-09-18 Basimah Khulusi Apparatus and method for truncating polyhedra
JP2010026636A (ja) 2008-07-16 2010-02-04 Mitsutoyo Corp 領域間の集合演算方法および集合演算処理装置
EP2189918A1 (en) * 2008-11-07 2010-05-26 Dassault Systèmes Computer-implemented method of computing, in a computer aided design system, of a boundary of a modeled object.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445390B1 (en) * 1997-12-29 2002-09-03 The United States Of America As Represented By The Adminstrator Of The National Aeronautics And Space Administration Triangle geometry processing for surface modeling and cartesian grid generation
CN1695151A (zh) * 2002-10-04 2005-11-09 三菱重工业株式会社 计算机辅助设计系统和程序

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J.M. SMITH: "A topologically robust algorithm for Boolean operations on polyhedral shapes using approximate arithmetic", 《COMPUTER-AID DESIGN》, 31 December 2007 (2007-12-31), pages 149 - 163 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159850A (zh) * 2019-12-09 2020-05-15 北京航空航天大学 一种面向平面散点数据的沿流向沟槽叶栅自动生成方法
CN111159850B (zh) * 2019-12-09 2021-06-01 北京航空航天大学 一种面向平面散点数据的沿流向沟槽叶栅自动生成方法
CN115272379A (zh) * 2022-08-03 2022-11-01 杭州新迪数字工程系统有限公司 一种基于投影的三维网格模型外轮廓提取方法及系统
CN115272379B (zh) * 2022-08-03 2023-11-28 上海新迪数字技术有限公司 一种基于投影的三维网格模型外轮廓提取方法及系统

Also Published As

Publication number Publication date
JP2011248889A (ja) 2011-12-08
KR20110129359A (ko) 2011-12-01
EP2400410B1 (en) 2014-01-08
EP2400410A1 (en) 2011-12-28
US20110295564A1 (en) 2011-12-01
CN102262694B (zh) 2016-11-23
CA2740669A1 (en) 2011-11-25
JP5848030B2 (ja) 2016-01-27
US8854367B2 (en) 2014-10-07
KR101754581B1 (ko) 2017-07-19

Similar Documents

Publication Publication Date Title
CN102262694A (zh) 从第一和第二建模对象计算结果闭合三角化多面体表面
Zhu et al. B-rep model simplification by automatic fillet/round suppressing for efficient automatic feature recognition
Campen et al. Exact and robust (self‐) intersections for polygonal meshes
CN101739494B (zh) 在计算机辅助设计系统中计算建模对象的边界的方法
Peng et al. Connectivity editing for quadrilateral meshes
CA2594080C (en) Computer-implemented process for creating a parametric surface
Li et al. Polynomial splines over general T-meshes
CN102306396A (zh) 一种三维实体模型表面有限元网格自动生成方法
Lou et al. Merging enriched finite element triangle meshes for fast prototyping of alternate solutions in the context of industrial maintenance
JP2007079655A (ja) 境界データのセル内形状データへの変換方法とその変換プログラム
Urick et al. Watertight boolean operations: A framework for creating CAD-compatible gap-free editable solid models
Jiang et al. Bijective projection in a shell
Gillespie et al. Integer coordinates for intrinsic geometry processing
Sakkalis et al. Representational validity of boundary representation models
Zeng et al. Q-Complex: Efficient non-manifold boundary representation with inclusion topology
Kase et al. Volume CAD—CW-complexes based approach
Leconte et al. Exact and efficient booleans for polyhedra
Krishnan et al. E cient representations and techniques for computing b-rep's of csg models with nurbs primitives
Liu et al. An adaptive scheme for subdivision surfaces based on triangular meshes
Tsamis The Marching Shape: Extensions to the Ice-Ray Shape Grammar
Tereshin Hybrid Modelling of Heterogeneous Volumetric Objects
Xu et al. Novel design methodology supporting product life-cycle design
Ouchi et al. Handling degeneracies in exact boundary evaluation.
Makem et al. Medial Axis Based Bead Feature Recognition for Automotive Body Panel Meshing
Safko Tessellation of trimmed NURBS surfaces.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant