[发明专利]一种三维平面实体的布尔运算方法有效
申请号: | 201410369841.X | 申请日: | 2014-07-30 |
公开(公告)号: | CN104134236B | 公开(公告)日: | 2017-01-18 |
发明(设计)人: | 许社教;邱扬;张居峰;徐延雪;田锦;杜美玲 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06T17/10 | 分类号: | G06T17/10 |
代理公司: | 西安吉盛专利代理有限责任公司61108 | 代理人: | 张培勋 |
地址: | 710071 陕西省*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 三维 平面 实体 布尔 运算 方法 | ||
技术领域
本发明属于计算机图形学技术领域,涉及一种三维平面实体的布尔运算方法,具体地说是两个三维平面实体通过并、交、差布尔运算以得到新的三维实体的方法,可用于CAD、CAM、CAE、计算机动画、虚拟现实等领域的三维实体建模。
背景技术
随着现代科学技术的飞速发展,尤其是计算机虚拟现实、动画仿真等技术的日益成熟,人们迫切希望能对现实世界进行真实模拟,而布尔运算成为了至关重要的技术之一。目前,三维几何模型越来越复杂,虚拟环境规模越来越大,同时,人们对实时交互和真实场景的需求越来越高,因此向研究人员提出了巨大的挑战,并再次让布尔运算成为了研究的热点。在三维几何建模(即几何造型)过程中一方面需要组合简单实体(如多面体、圆柱体、圆锥体、圆球体等)为复杂实体,另一方面需要把复杂实体解析为简单实体的组合,这两个过程都可以归结为几何实体的布尔运算问题。在几何建模领域中,比起其它专门算法,实体布尔运算具有较大的通用性和基础性,成为计算机几何造型和CAD、CAM、CAE、虚拟现实等领域必不可少的工具。因此,对三维实体布尔运算技术的研究,具有重要的学术意义和应用价值。
三维实体布尔运算在商用软件中已很成熟,但其实现方法在公开文献上尚未见到。在计算机图形学领域,三维布尔运算的主要实现方式有半空间法、八叉树法、BRep(边界表示)法等,半空间法和八叉树法目前已基本不采用,BRep法是目前三维实体布尔运算的主要实现方式。BRep方法是用点、边、面、环以及它们之间相互的邻接关系定义三维实体,实体表面、边界线、交线等都显式给出,参与布尔运算的实体、运算中几何元素处理以及运算得到的实体都采用BRep形式。由于曲面可以由平面片逼近,因此多面体之间的布尔运算是实现包括曲面在内的复杂实体建模的基础。
目前研究基于BRep形式的三维实体布尔运算的公开文献并不是很多。论文“基于降维的三维布尔运算算法与实现”(上海交通大学硕士学位论文,2008年2月,作者:周志超)提出三维布尔运算的结果由保留面和修改面组成,其修改面由截切平面与剖面通过传统的二维布尔运算得到,且保留面和修改面的获取方法依三维布尔运算的类型(并、交、差)不同而不同,该文的三维布尔运算、二维布尔运算都是一种运算类型对应一种算法;文献“计算机图形学”(清华大学出版社,1995年8月,作者:孙家广)介绍了Muuss和Butler于1991年提出的“求交共享、分类、归并”的非正则三维形体布尔运算方法,“求交共享”是先将一个形体中的边、环、面所有几何元素与另一个形体的所有几何元素进行求交,然后通过一定的拓扑算子将交点、交线插入形体中而被两个形体所共享;“分类”是把每个形体经求交后被适当分割的几何元素与另一形体进行比较,以决定这些元素是包含于(in)另一形体,还是在另一形体之外(out),还是在另一形体边界上(on),分类包括点的分类、边的分类和环的分类;“归并”是根据并、交、差运算类型对几何元素分类结果进行取舍,以决定哪些元素作为结果保留,哪些元素被丢弃。可以看出,已有研究成果存在以下问题:(1)算法复杂,实现难度较大;(2)算法完备性缺乏强有力的理论支撑;(3)算法运算量较大。
发明内容
本发明的目的在于克服上述已有技术的不足,提供一种算法简单、算法运算量小的三维平面实体的布尔运算方法。
本发明的目的是这样实现的:一种三维平面实体的布尔运算方法,其特征是:至少包括如下步骤:
步骤101:依次读入实体A和实体B的数据,将实体A的所有顶点、边、环和面的数据分别读入到A_Point_list、A_Line_list、A_Loop_list、A_Face_list链表中,实体B的所有顶点、边、环和面的数据分别读入到B_Point_list、B_Line_list、B_Loop_list、B_Face_list链表中;
步骤102:遍历链表A_Point_list、A_Line_list、A_Loop_list、A_Face_list求取实体A的包围盒值A.min.X.、A.min.Y、A.min.Z、A.max.X、A.max.Y、A.max.Z;遍历链表B_Point_list、B_Line_list、B_Loop_list、B_Face_list求取实体B的包围盒值B.min.X.、B.min.Y、B.min.Z、B.max.X、B.max.Y、B.max.Z;
步骤103:判断实体A的包围盒与实体B的包围盒是否相交,若相交则转至步骤107,若不相交则转至步骤104;
步骤104:判断实体A和实体B相离还是内含,若相离转至步骤106,若内含转至步骤105;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410369841.X/2.html,转载请声明来源钻瓜专利网。