Page 227 - 机械设计制造与自动化技术研究
P. 227

第八章  云制造背景下工业机器人技术研究



               因此,使用 HashSet 可以十分方便地进行模型中冗余点的剔除。
                   通过使用 HashSet 类,将所有的顶点放入其中,利用其特性剔除后再对顶点
               进行重新编号,就可以达到去除重复顶点的目的,整个过程的算法时间复杂度为

               O(n),仅需少量的内存空间,就能快速地完成模型重复顶点的去除。
                   (2)三角面片顶点序号更新
                   随着顶点的去重,需要对三角面片中的顶点序号进行更新。建立 Triangle 类
               用于三角面片数据的存储与处理。通过 id 进行顶点的索引,减少内存占用。使

               用 Dictionary < T,T >容器对三角面片中的顶点进行检索,与剔除重复点后的
               顶点新集合进行比较,更新三角面片的顶点序号。整个三角面片序号重排过程的
               时间复杂度为 O(n)。
                   (3)三角面片邻接信息的获取

                   对于满足充满原则的网格模型,每一条边均被两个三角面片所使用,因此每
               个三角面片存在三个邻接三角形,根据此特点,可以找到三角面片的所有邻接三
               角形。
                   2. 三角网格模型特征提取

                   为了准确完整地提取模型的特征边,这部分的特征边提取算法主要分为两步:
               首先通过模型边的二面角进行特征边的初步提取,再通过顶点的曲率判断,获取
               遗漏的特征点,并利用点与边的几何依存关系,获取遗漏的特征边。
                   (1)基于二面角的特征提取

                   这部分首先对网格模型中所有的三角形边求解基于两个相邻三角形的二面
               角,再按照一定的规则设定阈值,若大于设定的阈值,则该边为特征边,两个顶
               点为特征点。
                   一是三角形边的二面角求解。构建 Segment 类,用于边信息的存储与编辑

               处理。
                   二是通过阈值筛选特征点。基于二面角进行特征点的筛选,二面角阈值的选
               取是该算法的关键。以立方体为例介绍基本几何体的阈值选择。
                   由立方体的几何结构可知,其表面上边的二面角均为 0°,此时两个相邻

               三角形平行且共面,则该边为非特征边;立方体 12 条棱的二面角为 90°,均为
               特征边。因此,对于立方体或长方体可以断言,阈值可以选取大于 0°且小于
               90°的任意值。圆柱上下底边(特征边)的二面角为 90°,侧边的二面角均为



                                                                                   ·213·
   222   223   224   225   226   227   228   229   230   231   232