一种构建三维物体的方法及计算机辅助设计系统的制作方法_5

文档序号:9376910阅读:来源:国知局
杂且不够准确,从而 使得重组后的三维物体不够准确。
[0139] 为此,本发明实施例中,需要找到更符合人们思维方式的,简单的,更易于进行三 维重构的子线画图,以使得三维物体的重构高效准确;优选的,本发明实施例中,子线画图 应该不包含凹面且子线画图应该包含可能少的面。
[0140] 下面结合图9,对本发明实时提供的一种分割模块802的进行描述,如图9所示,包 括:
[0141] 提取单元8021,用于提取所述二维线画图的表面。
[0142] 其中,所述表面为所述二维线画图中处于同一平面的边围成的区域,为凸面或凹 面。
[0143] 添加单元8022,用于若所述二维线画图包含凹面,则根据预设策略,在二维线画图 上添加辅助顶点,以及,辅助边,获取扩展的二维线画图。
[0144] 其中,所述辅助顶点为除所述二维线画图的原始顶点之外的新的顶点,所述辅助 边为辅助顶点与二维线画图的原始顶点之间的连线,或者,为二维线画图的两个原始顶点 之间的连线,或者,为两个辅助顶点之间的连线;所述扩展的二维线画图为包含所述辅助顶 点和辅助边的二维线画图,所述扩展的二维线画图的表面均为凸面,所述凸面为所述二维 线画图的表面,所述凸面的所有顶点均在所述凸面的凸壳上。
[0145] 分割面获取单元8023,用于根据所述扩展的二维线画图,获取所述二维线画图的 分割面。
[0146] 其中,所述分割面二维线画图上的一条回路,通过对二维线画图的切割而形成,分 割面既包括二维线画图的原始边,也包括一些在二维线画图表面上添加的边(即辅助边)。
[0147] 子图获取单元8024,用于根据所述分割面对所述二维线画图进行分割,获取所述 二维线画图的多个子线画图。
[0148] 进一步的,所述添加单元8022,具体用于下述两种情况中:
[0149] (1)分别在所述二维线画图的每个凹面上,增加第一类辅助边,其中,所述第一类 辅助边平行于所述凹面的任一边,所述第一类辅助边的一个端点为所述凹面的凹点,所述 第一类辅助边的另一端点为辅助顶点,所述辅助顶点为与所述凹面的边与所述第一类辅助 线的交点;
[0150] 遍历所述二维线画图的凸面;
[0151] 若存在第一凸面的不相邻的两个边上,分别包含所述辅助顶点,则在所述第一凸 面上增加第二类辅助边,其中,所述第二类辅助边的两个端点分别为所述第一凸面的不相 邻的两个边上的辅助顶点。
[0152] 例如,如图4所示,二维线画图4a的凹面有:abcdefgha,i jklmnopi,在凹面 abcdefgha,以凹点c为端点作一条平行于凹面的边ha的平行线cG,其中,cG与凹面的边hg 相交,则cG属于第一类辅助线,同理,遍历所有凹面的凹点增加第一类辅助边:cG、cE、dC、 dA、nF、nH、mB、mj ;此时,在二维线画图4a的凸面hgjih存在第一类辅助边的端点C、D、G、 H,在凸面gfkjg上存在第一类辅助边的端点A、B,在凸面hapih上存在第一类辅助边的端 点E、F,分别将同一凸面上的所述端点进行连接,获取第二类辅助边:GH、⑶、AB、EF,得到二 维线画图4a的扩展线画图4b。
[0153] (2)若存在第一凹面,所述第一凹面包含共线边,则在所述第一凹面上增加第三类 辅助边,其中,所述第三类辅助边为所述第一凹面的共线边之间的连线。
[0154] 其中,所述共线边为同一平面上在同一直线的不同边。
[0155] 例如,如图5所示,二维线画图5a中包含凹面acfgjknoa,bdehilmpb,其中,凹面 acfgjknoa包含共线边on和gf,将共线边on和gf连接,则连接线ng为第三类辅助边,同 理,在凹面bdehilmpb上添加第三类辅助边mh。
[0156] 进一步的,所述分割面获取单元8023,具体用于:
[0157] 遍历所述扩展的二维线画图中的边;
[0158] 若存在第一边的两顶点中至少一个顶点的度不小于4,则将所述第一边归入第一 边集合;其中,所述顶点的度为与所述顶点连接的边的个数;
[0159] 对所述第一边集合中的每一个边,分别采用深度优先搜索算法获取从所述边的一 端点到所述边的另一端点的回路;
[0160] 若搜索到的回路与预设准则不矛盾,则将所述回路确定为所述二维线画图的分割 面的回路,获取分割面;其中,所述预设准则包含以下5个准则:
[0161] (1)若回路包含一个度为3的3D凸点,则所述回路不是分割面的回路;其中,所述 3D凸点为一个顶点,且所述凸点所在的面均为凸面。
[0162] (2)若回路经过两个相邻面fl、f2,且fl、f2共同拥有两个或两个以上不在同一直 线上的边,则所述回路不是分割面的回路;
[0163] (3)若回路的边自相交,则所述回路不是分割面的回路;
[0164] (4)若回路包含有一个弦,且该弦在二维线画图的表面上,则所述回路不是分割面 的回路;其中,所述弦为连接回路的上两个不相邻的点,且在回路内部的线段。
[0165] (5)若回路包含有两个不共线的边,且两个边是同一个面f的边、以及,所述回路 围城的区域和f之间有重叠区域,则所述回路不是分割面的回路。
[0166] 例如,如图6所示,获取二维线画图6a的分割面的过程为:顶点d的度等于4,选择 hd这条线段,搜索从端点d到端点h的回路,首先从d点出发搜索:dc,dk,di ;发现dc与准 则1至5都不矛盾,所以从dc继续往下做深度优先搜索,得到:dcb,dci,deg ;发现deb中 的b是一个3d凸顶点,与准则1矛盾,则从deb不再往下做深度优先搜索;deg和dci与准 则1至5不矛盾,则继续做深度优选搜索,从dci往下搜索到dcih和dcig :发现dcih中出 现了弦di在回路hdcih之内,与准则4矛盾,故回路hdcih不是分割面;发现dcig出现了 弦gc在回路hdcig之内,与准则4矛盾,故回路hdcih不是分割面;从deg往下搜索到dcgh 和degf,发现dcgf中的f点为3D凸点,与准则1矛盾,停止继续向下搜索;发现dcgh与准 则1至5不矛盾,则确定hdcgh为分割面。同理,用深度优先搜索二维线画图6a中与准则 1至5不矛盾的回路,最后获取二维线画图6a的分割面为jklmj和hdcih。
[0167] 进一步的,当所述扩展的二维线画图包含第一类辅助边和第二类辅助边时,所述 分割面获取单元8023,还用于 :
[0168] 在获取的所述二维线画图的分割面中,若同一个凹点上出现至少两个分割面,选 择包含边的数量最小的分割面或者周长最短的分割面为所述凹点所在的分割面。
[0169] 例如,如图4所示,采用上述方法获取的二维线画图的分割面为:EcnFE,cnHFC, dABmd,CdmDC,其中,凹点c上出现两个分割面:EcnFE,cnHFC,则删除分割面cnHFC,保留周 长最短的分割面EcnFE,同理,保留凹点d所在的dABmd分割面。
[0170] 进一步的,所述子图获取单元8024,具体用于:
[0171] 在所述扩展的二维线画图中,将与所述分割面有公共边的表面归入第一面集合;
[0172] 选取所述第一面集合中的第一表面归入第二面集合,并将所述第一面集合中的所 述第一表面删除,其中,所述第一表面为所述第一面集合中的任意一个表面;
[0173] 在所述第一面集合中,若存在第二表面,与所述第二面集合中的表面有公共边,且 所述公共边与所述分割面的一个顶点相连,且所述公共边不属于所述分割面的边,则将所 述第二面从所述第一面集合中删除,归入第二面集合;
[0174] 获取与所述分割面的顶点相连但不属于所述分割面的边的边的集合;
[0175] 在所述边的集合中,若存在第一边,与所述第一边相连的所述扩展的二维线画图 的两个表面与所述第二面集合中的第一表面属于同一面集合,
[0176] 则将所述第一边归入第一边集合,否则,归入第二边集合;
[0177] 根据所述第一面集合,第二面集合,第一边集合,第二边集合对所述二维线画图进 行分割,获取所述二维线画图的多个子线画图。
[0178] 例如,如图6所示,二维线画图6a的分割面为:jmlkj, dhgcd ;以分割面jmlkj 为例进行说明:首先找到图6a中与jmlkj有公共边的面,即jmlkj的相邻面:ajkdhea, abcdklmja,sjkts,klotk,mlonm,sjmns,将这6个面归入第一面集合;取出第一面集合中 的第一面ajkdhea放入第二面集合,则第一面集合中只剩下{abcdklmja,sjkts,klotk, mlonm,sjmns};发现第一面集合中的面abcdklmja和第一面ajkdhea有公共边:aj和kd, 且这两条边与分割面jmlkj的顶点j和k相连,但是aj和kd不是分割面jmlkj的边,则将 面abcdklmja从第一面集合中删除,归入第二面集合;而第一面集合中的面klotk,mlonm, sjmns, ajkdhea虽然和第一面abcdklmja有公共边,但是这些公共边也是分割面jmlkj 的边,所以将面klotk,mlonm, sjmnsa,jkdhea保留在第一面集合中;最后第一面集合为 {klotk,mlonm,sjmnsa,jkdhea}和第二面集合为{ajkdhea,abcdklmja},将第一面集合中 的面,二维线画图中与第一面集合中的面相连接的面,以及分割面组成的线画图作为一个 子线画图;将第二面集合中的面,二维线画图中与第二面集合中的面相连接的面,以及分割 面组成的线画图作为一个子线画图;同理,对于分割面dhgcd采用同样的方法进行分割,则 得到图6中6b所示的二维线画图的三个子线画图。
[0179] 需要说明的是,本实施例中的获取模块可以为计算机辅助设计系统中单独设立的 处理器,也可以为集成在计算机辅助设计系统中的某一个处理器,此外,也可以以程序代码 的形式存储于基站的存储器中,由基站的某一个处理器调用并执行以上获取模块的功能; 分割模块与获取模块相似,且可以与获取模块集成在一起,也可以独立实现;三维重构模块 与获取模块和分割模块相似,且可以与获取模块和分割模块集成在一起,也可以独立实现; 重组模块与获取模块、分割模块、三维重构模块相似,且可以与获取模块、分割模块、三维重 构模块集成在一起,也可以独立实现。这里所述的处理器可以是一个中央处理器(Central Processing Unit,CPU),或者是特定集成电路(Application Specific Integrated Circuit, ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0180] 由上可知,本发明实施例提供一种构建三维物体的方法及计算机辅助设计系统, 获取二维线画图;将所述二维线画图分割为多个子线画图;分别对每个子线画图进行三维 重构;将所述子线画图的三维重构结果进行重组得到三维物体,其中,所述将所述二维线画 图分割为多个子线画图,具体包括:提取所述二维线画图的表面,其中,所述表面为所述二 维线画图中处于同一平面的边围成的区域,为凸面
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1