CN104809760B - 基于深度优先策略的地理空间三维外轮廓自动构建方法 - Google Patents
基于深度优先策略的地理空间三维外轮廓自动构建方法 Download PDFInfo
- Publication number
- CN104809760B CN104809760B CN201510229660.1A CN201510229660A CN104809760B CN 104809760 B CN104809760 B CN 104809760B CN 201510229660 A CN201510229660 A CN 201510229660A CN 104809760 B CN104809760 B CN 104809760B
- Authority
- CN
- China
- Prior art keywords
- planar chip
- plane sheet
- planar
- outline
- chip
- 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.)
- Expired - Fee Related
Links
Abstract
本发明提供一种基于深度优先策略的地理空间三维外轮廓自动构建方法,其特征在于:首先根据连通性找到多个连通分支,然后找到其中具备极值顶点的连通分支,该连通分支包含了三维外轮廓,之后找到具备极值顶点的最外围的平面片,接着从最外围的平面片出发采用深度优先遍历依次找到构成三维外轮廓包含的所有平面片。本发明的技术方案事先主动地拓扑自动构建这样的三维外轮廓,而并非如现有技术事先盲目搜索之后再剔除,本发明提出的方法有效避免了搜索的盲目性。同时,本发明所述的三维外轮廓的拓扑自动构建方法,能够支持从具备多个连通分支或具备穿洞情况或具备内穴情况的平面片集合中有效地搜索出三维外轮廓,且保证结果的正确性。
Description
技术领域
本发明涉及三维地理空间数据组织与建模的技术领域,尤其是涉及一种三维外轮廓的拓扑自动构建方法。
背景技术
识别与提取二维外轮廓在产品设计、信息处理等中具备重要意义,特别是在计算机辅助设计(CAD,Computer-aidedDesign)领域,详见(杨若瑜,胡笳,蔡士杰.(2003).工程图对象识别规则自动获取方法的研究[J].计算机学报,26(10):1234-1240;董玉德,赵韩,王平,张国平.(2005).工程图识别与理解的研究现状分析[J].合肥工业大学学报,28(1):29-33.)
现有针对二维图形的凸壳和外轮廓的拓扑自动构建已经有比较充分的研究,特别是在计算机辅助设计(CAD,Computer-aidedDesign)中。针对三维图形的凸壳研究也不少;然而针对三维图形外轮廓的拓扑自动构建方法,却几乎没有。这正是本发明的研究重点。
首先,在回顾二维外轮廓或三维外轮廓的构造现状之前,先回顾构造的初始条件。即初始给予的数据应该是无重叠(non-overlapping)、无缝隙(non-gap)的完全(complete)空间剖分。
针对二维情况,应该是无重叠、无缝隙的完全二维空间剖分,相关文献详见(Plumer,L.,Groger,G.(1997).AchievingIntegrityinGeographicInformationSystems_MapsandNestedMaps.GeoInformatica,vol.1,no.4,pp.345-367;Plumer,L.,Groger,G.(1996).NestedMaps_aFormal,ProvablyCorrectObjectModelforSpatialAggregates.Proceedingsofthe4thACMWorkshoponAdvancesinGeographicInformationSystems,Rockville,Maryland,November15-16,ACMPress,pp.77-84;Plumer,L.(1996).AchievingIntegrityofGeometryandTopologyinGeographicalInformationSystems.Proceedingsofthe“SAMOS”InternationalConferenceonGeographicInformationSystemsinUrban,EnvironmentalandRegionalPlanning,IslandofSamos,Greece,April19-21.)。
针对三维情况,应该是无叠置、无缝隙的完全三维空间剖分,相关文献详细(Stoter,J.E.,vanOosterom,P.J.M.(2005).TechnologicalAspectsofaFull3DCadastralRegistration.InternationalJournalofGeographicalInformationScience,vol.19,no.6,pp.669-696;Thompson,R.J.,vanOosterom,P.(2011).ConnectivityintheRegularPolytopeRepresentation.GeoInformatica,vol.15,pp.223-246;Thompson,R.J.(2007).ProofsofAssertionsintheInvestigationoftheRegularPolytope.Report,GDMC,DelftUniversityofTechnology;46p;Thompson,R.J.(2007).TowardsaRigorousLogicforSpatialDataRepresentation.NCG,NederlandseCommissievoorGeodesie,331p;Thompson,R.,vanOosterom,P.(2008).MathematicallyProvablyCorrectImplementationofIntegrated2Dand3DRepresentations.Advancesin3DGeoinformationSystems,SpringerBerlinHeidelberg,pp.247-278;Thompson,R.J.,vanOosterom,P.(2006).ImplementationIssuesintheStorageofSpatialDataasRegularPolytope.UDMS,vol.6,pp.15-17;Brugman,B.,Tijssen,T.,vanOosterom,P.(2011).Validatinga3DTopologicalStructureofa3DSpacePartition.AdvancingGeoinformationScienceforaChangingWorld,SpringerBerlinHeidelberg,pp.359-378)。
二维外轮廓可能是凸的,可能是凹的;二维外轮廓可能带内环,可能不带内环。
在二维空间中,给予空间剖分后,整个二维空间被分为两个部分,即位于内部的“最小多边形集合”以及位于外部的“无限多边形”。其中,针对位于外部的“无限多边形”(即表达了二维外轮廓),其在ISO19107‘SpatialSchema’中被称为“统一面(UniverseFace)”(ISO.(2003).ISO/TC211,ISOInternationalStandard19107:2003,GeographicInformation–SpatialSchema.),其在CGAL的2D三角化(2DTriangulation)中被称为“无限面(InfiniteFace)”(CGAL.(2015).UserManualandReferencev4.6-beta1,2015),但它们都没有说明这样的二维外轮廓如何自动构造。
当二维外轮廓总是凸的时,简称二维凸壳。针对寻二维凸壳的研究相对较多,包括
(1)针对二维空间中点集凸壳提取的研究(Jamamoto,J.K.(1997).ConvexHull_aPASCALProgramforDeterminingtheConvexHullforPlanarSets.Computers&Geosciences,vol.23,no.7,pp.725-738;周培德.(1993).求凸壳顶点的一种算法[J].北京理工大学学报,13(1):69-72;颜坚,毕硕本,汪大,郭忆.(2013).多核架构下计算凸壳的并行算法[J].计算机科学,40(2):16-19,57;张忠武,吴信才.(2001).海量数据凸壳快速优化算法研究[J].微计算机信息,27(8):194-196;文尚猛,王峰,李晓梅,周兴铭.(1997).平面点集的O(logN)步凸壳算法[J].计算机学报,20(9):828-831;张忠武,吴信才.(2009).平面海量散乱点集凸壳算法[J].计算机工程,35(9):43-45,48.)
(2)针对二维空间中线段集凸壳提取的研究(周培德.(2003).寻求平面上线段集凸壳的算法[J].工程图学学报,(2):116-119;周启海.(2007).论二维点集或线段集凸壳生成算法改进与优化的同构方向[J].计算机科学,34(7):216-218,248;周培德,张金琳.(2003).寻求平面上线段集凸壳的扫描算法[J].工程图学学报,(4):110-115;)
(3)针对二维空间中多边形凸壳提取的研究(McCallum,D.,Avis,D.(1979).ALinearAlgorithmforFindingtheConvexHullofaSimplePolygon.InformationProcessingLetters,vol.9,no.5,pp.201-206;Shin,S.Y.,Woo,T.C.(1986).FindingtheConvexHullofaSimplePolygoninaLinearTime.PatternRecognition,vol.19,no.6,pp.453-458;Graham,R.L.,Frances,Y.F.(1983).FindingtheConvexHullofaSimplePolygon.JournalofAlgorithms,vol.4,no.4,pp.324-331;Sklansky,J.(1982).FindingtheConvexHullofaSimplePolygon.PatternRecognitionLetters,vol.1,no.2,pp.79-83)
此外,针对二维图形外边界的提取,还存在如下几种情况的研究:
(1)针对2Dalpha型的外轮廓的构造(Vishwanath,A.V.,Arun,S.R.,Ramanathan,M.(2013).MinimumAreaEnclosureandAlphaHullofaSetofFreeformPlanarClosedCurves.Computer-aidedDesign,vol.45,no.3,pp.751-763;CGAL.(2015).UserandReferenceMannual,v4.6-beta1,2015)。事实上,2Dalpha复形(2Dalpha-complex)是嵌入于二维空间的点集在二维空间中分布形态的一种近似,正因为它的输入数据是二维点集,所以是对真实二维图形外边界的近似,而非真实二维外轮廓。
(2)由Kolingerova和Zalik等提出的采用Delaunay三角形方法逼近二维图形外边界的方法(Kolingerova,I.,Zalik,B.(2006).ReconstructingDomainBoundarieswithinaGivenSetofPoints,usingDelaunayTriangulation.Computers&Geosciences,vol.32,pp.1310-1319).虽然,该方法申明可以构造带内环的凹壳,但是该方法的输入条件必须保证该二维图形的填充区域内部是点集密集的,填充区域外部是点集稀疏的,这在绝大多数情况下是无法实现的。同时,该方法的第一步(采用Delaunay三角化构造二维点集的凸壳)是自动的,但是该方法的第二部(去除填充区域外部的稀疏三角形)却依赖于三角形的边长设置,边长设置依赖于经验,并非全自动化。
(3)有的研究能够识别二维图形的外轮廓,但却具有盲目性,即无法事先主动识别哪个是二维外轮廓。特别是针对早期的“多边形转换器(POLYVRT,PolygonConvertor)”结构的多边形搜索(Hodgson,M.E.,Barrett,A.L.,Plews,R.W.(1989).CartographicDataCapturingusingCAD.Auto-carto:ProceedingsoftheInternationalConferenceonComputer-assistedCartography.AmericanCongressonSurveyingandMapping,no.9,pp.357.)与“拓扑整合的地理编码与参考(TIGER,Topologically–integratedGeographicEncodingandReferencing)”结构的多边形搜索(Meixler,D.,Saalfeld,A.J.(1987).PolygonizationandTopologicalEditingattheBureauoftheCensus,pp.731-738.),在它们中,二维外轮廓的搜索结果是随机产生的,类似的情况还包括(肖蓉,巩丹超.(1999).摄影测量数字成图系统中地物拓扑关系的自动建立[J].解放军测绘学院学报,16(3):187-189,193;程双伟.(2002).GIS中拓扑关系的建立与更新[Msc.].硕士学位论文,解放军信息工程大学,54p.)。针对它们,都需要在事后(即所有结果搜索完毕后)通过“面积和判断法”或“点在多边形判别法”等方法给予外轮廓多边形的剔除。
尽管如此,还是存在不少针对二维图形外轮廓的自动提取研究,包括,
(1)基于矢量的二维外轮廓提取;
(2)基于栅格的二维外轮廓提取,即基于图像的;
目前,大多数的是研究是基于矢量的二维图形外轮廓的提取研究,特别是应用于计算机设计辅助(CAD,Computer-aidedDesign)之中,具体包括董建甲等提出的“夹角识别法”从而搜索二维外轮廓(董建甲,王小椿.(2003).二维图形轮廓线的夹角比较识别法[J].机械,30(1):48-49,76),陆还珠等提出“最长路径算法”从而搜索二维外轮廓(陆还珠,李贤辰.(1994).机械图消隐方法一探[J].计算机辅助设计与图形学学报,6(3):233-238.),杨岳等提出的基于现有AUTOCAD软件“比较滚圆夹角大小”从而搜索二维外轮廓(杨岳,陈峰,罗意平.(2003).AutoCAD环境下二维图形轮廓的自动识别与生成[J].长沙铁道学院学报,21(3):67-71),吴怀军等提出的“基于回溯”方法从而搜索二维外轮廓(吴怀军,孙家广.(1998).基于回溯的参考点边界搜索算法[J].计算机研究与发展,35(6):562-566),张淮声等提出的“矢量积”方法从而搜索二维外轮廓(张淮声,张佑生,方贤勇.(2002).基于矢量积的二维封闭图形轮廓信息提取方法[J].计算机工程与应用,8:93-94,151.),张建勋等提出“基于顺时针走向”思想从而搜索二维外轮廓(张建勋,何玉林,罗书强.(2000).零件二维视图轮廓信息和封闭图形信息的自动提取[J].计算机工程与应用,10:38-40.),陆地等提出的“基于局部坐标判别”思想从而搜索二维外轮廓(陆地.(2004).基于图像处理的图形轮廓自动识别技术研究[J].长安大学学报(建筑与环境科学版),21(1):73-75,78),林小夏等提出的“基于斜率”思想从而搜索二维外轮廓(林小夏,张树有.(2008).基于中点法的复杂图形轮廓信息自组织算法研究[J].中国图象图形学报,13(3):541-546.),阎春平等提出的“基于转向”思想从而搜索二维外轮廓(覃斌,阎春平,刘飞.(2009).基于转向法的大规模空间封闭图形高效识别[J].计算机工程,35(14):184-186,211;阎春平,范辉先,尹震飚,覃斌,刘飞.(2008).一种高效识别大规模二维封闭图形的方法研究[J].计算机工程与应用,44(14):169-171;阎春平,覃斌,刘飞.(2010).图形轮廓提取的图元优先级特征定义及应用[J].计算机辅助设计与图形学学报,22(1):44-50;覃斌,阎春萍,刘飞.(2011).图形轮廓分层路由提取的MST生长算法[J].计算机辅助设计与图形学学报,23(2):256-262),张树有等提出的“基于拓扑映射”思想从而搜索二维外轮廓(张树有,谭建荣,彭群生.(2001).基于拓扑映射的视图轮廓信息自动获取算法[J].中国图象图形学报,6A(10):1016-1020;张树有.(1999).基于多层次协同的产品尺寸信息检验与自适应处理研究[J].博士学位论文,浙江大学,杭州,141p),阎春平等提出的“基于拓扑投影不变原理”从而搜索二维外轮廓,特别的,它是一种基于矢量的嵌入于三维空间中的二维图形外轮廓提取的研究(阎春平,王宾宾,覃斌,刘飞.(2010).应用拓扑投影不变原理的空间图形轮廓提取方法[J].重庆大学学报(自然科学学报),33(6):1-5),张树有提出的“侧点法跟踪思想”从而求取二维外轮廓(张树有.(1996).侧点法自动跟踪获取图形轮廓信息[J].浙江大学学报(自然科学版),30(4):403-407;张树有,谭建荣,彭群生.(2000).基于动态优先边求取视图轮廓信息算法[J].计算机辅助设计与图形学学报,12(12):891-895)。
相关综述性文献包括(张树有,谭建荣,彭群生.(2001).基于拓扑映射的视图轮廓信息自动获取算法[J].中国图象图形学报,6A(10):1016-1020;林小夏,张树有.(2008).基于中点法的复杂图形轮廓信息自组织算法研究[J].中国图象图形学报,13(3):541-546;阎春平,覃斌,刘飞.(2010).图形轮廓提取的图元优先级特征定义及应用[J].计算机辅助设计与图形学学报,22(1):44-50.)
针对以上搜索二维外轮廓的所有方法及算法,可以归纳为如下几类:
(1)基于夹角大小比较的方法:包括董建甲等提出的“夹角识别法”,杨岳等提出的基于现有AUTOCAD软件“比较滚圆夹角大小”,吴怀军等提出的“基于回溯”方法,张建勋等提出“基于顺时针走向”思想,陆地等提出的“基于局部坐标判别”思想,阎春平等提出的“基于转向”,张树有提出的“侧点法跟踪思想”;
此外还包括(高玮,吴中奇,童红卫.(1994).工程图轮廓线自动识别的新方法[J].计算机应用与软件,13(6):49-52;李宾,谭建荣,彭群生.(1996).工程图扫描图像中剖面区域的整体识别[J].工程图学学报,(2):75-82;范彦斌,沈自林.(1999).二维机械装配图轮廓识别与消隐裁剪算法[J].西北大学学报(自然科学版),29(6):503-506;Wu,H.Y.,Wang,Y.D.,Gong,J.Y.(1999).AnEfficientSolutionforBuildingPolygonalObjects.Geo-spatialInformationScience,vol.2,no.1,pp.63-67)
(2)基于矢量积比较的方法:典型的如张淮声等提出的“矢量积”方法;
(3)基于斜率比较的方法:典型的如林小夏等提出的“基于斜率”思想
(4)基于路径长短比较的方法:典型的如陆还珠等提出“最长路径算法”;
(5)基于拓扑映射不便原理的方法:典型的如张树有等提出的“基于拓扑映射”思想,阎春平等提出的“基于拓扑投影不变原理”;
除了基于矢量的方法之外,还存在基于栅格的二维图形外轮廓的提取研究,包括由Zalik等提出的“统一平面子分(UPS,UniformPlaneSubdivision)”方法(Zalik,B.(2003).AnEnvelopeConstructionofaSetofPolygonsinaLandCadastre.Computers&Geosciences,vol.29,no.7,pp.929-935;Zalik,B.(1999).ATopologyConstructionfromLineDrawingsusingaUniformPlaneSubdivisionTechnique.Computer-AidedDesign,vol.31,no.5,pp.335-348;Gombosi,M.,Zalik,B.,Krivograd,S.(2003).ComparingTwoSetsofPolygons.InternationalJournalofGeographicalInformationScience,vol.17,no.5,pp.431-443.),此外还有(张占月.(1999).GIS,RS数据格式转换新技术研究[J].指挥技术学院学报,10(1):91-95;张国云,湛腾西.(2002).一种快速实现有序搜索图形边界点的新方法[J].岳阳师范学院学报,15(3):11-13.)
与二维外轮廓类似的,三维外轮廓可能是凸的,可能是凹的;三维外轮廓可能带内穴,可能不带内穴。与二维外轮廓不同的,三维情况中存在穿洞的概念(之后详述),故而三维外轮廓可能带穿洞,可能不带穿洞。与二维情况类似的,在三维空间中,给予空间剖分后,整个三维空间被分为两个部分,即位于内部的“最小体集合”以及位于外部的“无限体”。其中,针对位于外部的“无限体”(即表达了三维外轮廓),其在ISO19107‘SpatialSchema’中被称为“统一体(UniverseBody)”(ISO.(2003).ISO/TC211,ISOInternationalStandard19017:2003,GeographicInformation–SpatialSchema.);其在CGAL的3D三角化(3DTriangulation)中被称为“无限四面体(InfiniteTetrahedron)”(CGAL.(2015).UserManualandReferencev4.6-beta1,2015);其在(Wu,H.Y.,Gong,J.Y.,Li,D.R.,Shi,W.Z.(2000).AnAlgebraicAlgorithmforPointInclusionQuery.Computers&Graphics,vol.24,no.4,pp.517-522.)中被称为“负向外壳(NegetiveHull)”,但它们都没有说明这样的三维外轮廓如何自动构建。
当三维外轮廓总是凸的时,简称三维凸壳。针对寻找三维凸壳的研究,也不少,特别是针对研究三维空间中点集的凸壳的提取,详见(Stein,A.,Geva,E.,EI-Sana,J.(2012).CudaHull:FastParallel3DConvexHullontheGPU.Computers&Graphics,vol.36,no.4,pp.265-271;Gupta,N.,Sen,S.(2003).FasterOutput-sensitiveParallelAlgorithmsfor3DConvexhullsandVectorMaxima.JournalofParallelandDistributedComputing,vol.63,no.4,pp.488-500;Tang,M.,Zhao,J.Y.,Tong,R.F.,Manocha,D.(2012).GPUAcceleratedConvexHullComputation,Computers&Graphics,vol.36,no.5,pp.498-506;Cao,M.C.,Cao,T.T.,Nanjappa,A.,Tan,T.S.,Huang,Z.Y.(2012).AGPUAlgorithmforConvexHull.TechnicalReportTRA1/12,NationalUniversityofSingapore,SchoolofComputing;吕志强,司明.(2010).关于离散点集的三维凸包的研究[J].黑龙江科技信息,(9):70)。
与二维图形外轮廓提取类似的,这里认为:针对三维外轮廓的提取方法同样可以分为基于矢量的和基于栅格的。尽管如此,至今为止没有找到任何与基于矢量或栅格自动构建三维外轮廓直接相关的文献与研究,。本发明正是基于此而给予设计。
此外,针对三维图形外轮廓的提取,还存在如下几类间接相关的研究,包括:
(1)针对3Dalpha型外轮廓提取的研究(CGAL(2015).UserManualReference,v4.6-beta1,2015)。事实上,3Dalpha复形(3Dalpha-complex)是嵌入于三维空间的点集在三维空间中分布形态的一种近似,正因为它的输入数据是三维点集,所以是对三维图形外轮廓的一种逼近,而非真实三维外轮廓。它与基于点云(pointcloud)的三维表面逼近方法类似。
(2)有的研究能够识别三维外轮廓,但是同样具有盲目性,即无法事先主动识别哪个是三维外轮廓。换言之,针对三维外轮廓体的剔除,需要在事后使用“体积和判别法”或“点是否位于体内判别法”等方法剔除,特别是采用“判断点是否位于多面体内部”的研究(Wu,H.Y.,Gong,J.Y.,Li,D.R.,Shi,W.Z.(2000).AnAlgebraicAlgorithmforPointInclusionQuery.Computers&Graphics,vol.24,no.4,pp.517-522;Feito,F.R.,Torres,J.C.(1997).InclusionTestforGeneralPolyhedra.Computers&Graphics,vol.21,no.1,pp.23-30;Ogayar,C.J.,Segura,R.J.,Feito,F.R.(2005).PointinSolidStrategy.Computers&Graphics,vol.29,no.4,pp.616-624;Cui,S.L.,Zhang,S.Q.,Chen,X.X,Pang,Z.P.,Fu,X.Y.,Zhang,X.(2011).Point-in-PolyhedraTestwithDirectHandlingofDegeneracies.Geo-spatialInformationScience,vol.14,no.2,pp.91-97;王文成,吴恩华.(2000).判断检测点是否在多边形或多面体内的新方法[J].软件学报,11(12):1614-1619;吴坚,郑康平,王小椿.(2003).一种检测点是否在多边形或多面体内的方法[J].小型微机计算机系统,24(12):2200-2203.)
针对如上这样具备盲目性的三维外轮廓提取,尤其是见于三维地籍管理中基于离散面片拓扑自动构造3维实体的研究中。在其中,这样的三维外轮廓称“最大最小体”,目前都是采用如上提出的“事先盲目搜索,事后剔除”的手段(郭仁忠,应申,李霖.(2012).基于面片集合的三维地籍产权体的拓扑自动构建[J].测绘学报,41(4):620-626;李霖,赵志刚,郭仁忠,贺彪.(2012).空间体对象间三维拓扑构建研究[J].武汉大学学报(信息科学版),37(6):719-723;Ying,S.,Guo,R.Z.,Li,L.,vanOosterom,P.,Ledoux,H.,Stoter,J.(2011).DesignandDevelopmentofa3DCadastralSystemPrototypebasedontheLADMand3DTopology.2ndInternationalWorkshopon3DCadastres,Delft,theNetherlands,pp.167-188.)或“MaximalMinimumSolid”(Ying,S.,Guo,R.Z.,Li,L.,vanOosterom,P.,Stoter,J.(2014).Constructionof3DVolumetricObjectsfora3DCadastralSystem,TransactionsinGIS,22p;Guo,R.Z.,Li,L.,Ying,S.,Luo,P.,He,B.,Jiang,R.R.(2012).Developinga3DCadastrefortheAdministrationofUrbanLandUse:ACaseStudyofShenzhen,China.Computers,EnvironmentandUrbanSystems,pp.1-10.)。
因此,本技术领域亟待实际有效的解决方案出现。
发明内容
针对现有技术缺陷,本发明阐述了一种三维外轮廓的拓扑自动构建方法。
本发明技术方案提供一种基于深度优先策略的地理空间三维外轮廓自动构建方法,首先根据连通性找到多个连通分支,然后找到其中具备极值顶点的连通分支,该连通分支包含了三维外轮廓,之后找到具备极值顶点的最外围的平面片,接着从最外围的平面片出发采用深度优先遍历依次找到构成三维外轮廓包含的所有平面片,实现方式包括以下步骤,
步骤1,根据连通性找到原始给定平面片集合中存在的多个连通分支;
步骤2,确定每个连通分支包含的平面片集合,每个平面片集合中的平面片之间通过边相互邻接;
步骤3,针对每个连通分支,获取每个连通分支的最小外接盒;计算该最小外接盒的最大极值,简称“分支最大极值”;
步骤4,比较所有的“分支最大极值”,获得具备最大“分支最大极值”的那个连通分支,确定该连通分支为后续操作对象,且以上极值简称为“最大极值”;
步骤5,创建一个结果平面片,内容为空;
步骤6,创建一个相接平面片集合,内容为空;
步骤7,将步骤4所确定的连通分支相应平面片集合作为当前的给定平面片集合,针对给定平面片集合中的每个平面片的每个顶点,比较顶点的极值与“最大极值”,若存在有一个或者一个以上顶点等于“最大极值”的平面片,则将该平面片加入以上相接平面片集合中;
步骤8,针对给定平面片集合,如果存在所有顶点的极值等于“最大极值”的平面片,将该平面片标记为平行平面片,并转入步骤9;如果不存在,则转入步骤10;
步骤9,比较平行平面片的法向量与三维矢量(0,0,1)的夹角大小,进行以下处理并转入步骤12,
若两者夹角为0,则将该平面片标记为结果平面片,且结果平面片的方向为1;
若两者夹角为180,则将该平面片标记为结果平面片,且结果平面片的方向为2;
步骤10,针对相接平面片集合中的每个平面片,计算法向量与三维矢量(0,0,1)的夹角,该夹角记为“原始夹角”,进行如下处理计算“处理夹角”,然后进入步骤11,
若原始夹角处于(0,90),则不处理,原始夹角即“处理夹角”;
若原始夹角处于(90,180),则将180减去原始夹角,结果标记为“处理夹角”;
步骤11,从相接平面片集合中的所有平面片中,选择“处理夹角”最小的平面片,将该平面片标记为结果平面片;同时,根据结果平面片的“原始夹角”进行如下处理计算结果平面片的方向,
若原始夹角处于(0,90),则结果平面片的方向为1;
若原始夹角处于(90,180),则结果平面片的方向为2;
步骤12,搜索结束,结果平面片为外轮廓体边界上的一个平面片,返回结果平面片;
步骤13,创建外轮廓体,内容为空;
步骤14,创建当前平面片,采用结果平面片初始化;
步骤15,针对当前平面片,读取此时当前平面片的方向,将该平面片以及此时的方向加入外轮廓体中,同时对该平面片此时方向对应的侧面作如下处理进行标记,
若此时当前平面片的方向为1,则该平面片的背面标记“已使用”;
若此时当前平面片的方向为2,则该平面片的正面标记“已使用”;
步骤16,针对当前平面片,创建推进平面片,初始化内容为空;
步骤17,从当前平面片包含的所有边中取一条边,计算最邻近平面片及相应方向;
步骤18,针对步骤17所得最邻近平面片及方向分别进行判断,若最邻近平面片及方向在当前的外轮廓体中不存在,则将相应最邻近平面片加入以上推进平面片,若存在则从当前平面片包含的所有边中依次取下一条边,返回执行步骤17确定最邻近平面片及相应方向,直到对当前平面片包含的所有边处理完毕,进入步骤19;
步骤19,清空当前平面片,将推进平面片作为新的当前平面片;之后,清空推进平面片;
步骤20,基于新的当前平面片返回步骤15,直至得到的推进平面片为空,三维外轮廓搜索完毕。
而且,步骤17中,对某条边计算最邻近平面片及相应方向实现方式如下,
首先,设与该边邻接的且同样用于构成外轮廓体的平面片,称为最邻近平面片;与该边相接的所有平面片形成一个集合,称为相接平面片束,最邻近平面片总是存在于相接平面片束中;计算最邻近平面片如下,
若当前平面片的方向为1,则在相接平面片束中,顺着当前平面片的正面望去,寻找与当前平面片沿着以上边夹角最小的那个平面片,此时该平面片是最邻近平面片;
若当前平面片的方向为2,则在相接平面片束中,顺着当前平面片的正面望去,寻找与当前平面片沿着以上边夹角最大的那个平面片,此时该平面片是最邻近平面片;
然后,计算最邻近平面片的方向,若最邻近平面片与当前平面片相容,则对最邻近平面片赋予与当前平面片一样的方向;若最邻近平面片与当前平面片不相容,则对最邻近平面片赋予与当前平面片不同的方向。
而且,所述极值为最大Z值、最小Z值、最大X值、最小X值、最大Y值或最小Y值。
本发明在现有研究基础上进一步发展,采用的数据模型基于“面向地籍的三维空间数据模型”,研究的主要内容是如何事先主动地拓扑自动构建这样的三维外轮廓,而并非如现有技术事先盲目搜索之后再剔除,本发明提出的方法有效避免了搜索的盲目性。同时,本发明所述的三维外轮廓的拓扑自动构建方法,能够支持从具备多个连通分支或具备穿洞情况或具备内穴情况的面片集合中有效地搜索出三维外轮廓,且保证结果的正确性。本发明所述方法可以广泛应用于三维建筑集群/三维房产集群的外轮廓识别中。
附图说明
图1为本发明实施例图形外轮廓的拓扑等价性示意图,其中图1(a)为2D图形外轮廓的拓扑等价性示意图,图1(b)为3D图形外轮廓的拓扑等价性示意图。
图2为本发明实施例平面片夹角的转化处理示意图,其中图2(a)为嵌入于三维空间中的平面片集合示意图,图2(b)为垂直于XOY的平面片集合示意图,图2(c)是简化为直线段集合的示意图。
图3为本发明实施例针对带内穴的简单案例找三维外轮廓示意图。
图4为针对带穿洞的简单案例找三维外轮廓示意图。
图5为本发明实施例中由5×5×6个平面片构成的3维外轮廓(展开2维图形方式)示意图。
图6为图5所示外轮廓给予深度优先遍历得到的12个条带(展开2维图形方式)示意图。
图7为图5所示外轮廓给予深度优先遍历得到的12个条带中第1,2,3,10,11,12个条带(多叉树形式)示意图。
图8为图5所示外轮廓给予深度优先遍历得到的12个条带中第4,5,6,7,8,9个条带(多叉树形式)示意图。
图9为本发明实施例中由4×4×6个平面片构成的3维外轮廓(展开2维图形方式)示意图。
图10为图9所示外轮廓给予深度优先遍历得到的9个条带(展开2维图形方式)示意图。
图11为图9所示外轮廓给予深度优先遍历得到的9个条带中第1,2,3,4,5个条带(多叉树形式)示意图。
图12为图9所示外轮廓给予深度优先遍历得到的9个条带中第6,7,8,9个条带(多叉树形式)示意图。
图13为本发明实施例中由3×3×6个平面片构成的3维外轮廓(展开2维图形方式)示意图。
图14为图13所示外轮廓给予深度优先遍历得到的7个条带(展开2维图形方式)示意图。
图15为图13所示外轮廓给予深度优先遍历得到的7个条带(多叉树形式)示意图。
图16为本发明实施例中由2×2×6个平面片构成的3维外轮廓(展开2维图形方式)示意图。
图17为图16所示外轮廓给予深度优先遍历得到的3个条带(展开2维图形方式)示意图。
图18为图16所示外轮廓给予深度优先遍历得到的3个条带(多叉树形式)示意图。
图19为本发明实施例中由1×1×6个平面片构成的3维外轮廓(展开2维图形方式)示意图。
图20为图19所示外轮廓给予深度优先遍历得到的1个条带(展开2维图形方式)示意图。
图21为图19所示外轮廓给予深度优先遍历得到的1个条带(多叉树形式)示意图。
具体实施方式
本发明阐述了一种三维外轮廓的拓扑自动构建方法。通过这种方法找到的三维外轮廓中允许有穿洞(through-holes),允许有内穴(innercavity)。
3维外轮廓的构造基元应该是紧邻1个维度的2维基元,如2维平面片;否则,如果3维外轮廓由跨维的1维直线段构成,就会产生二义性。就如2维外轮廓的构造基元应该是紧邻1个维度的1维基元,如1维直线段;否则,如果2维外轮廓由跨维度的0维点构成,就会产生二义性,典型的就如2Dalpha型外边界由0维点集生成,而2Dalpha型外边界就只是二维图形外轮廓的逼近,并非真实外轮廓。
针对由2维平面片封闭的3维外轮廓,其与3维球体的表面是拓扑等价的,即在不发生撕裂或粘黏的情况下,3维外轮廓可以拓扑变换为3维球体的表面(如附图1(b)所示)。就如由1维边封闭的2维外轮廓,其与2维圆圈的边界是拓扑等价的,即在不发生撕裂或粘黏的情况下,2维外轮廓可以拓扑变换为2维圆圈的表面(如附图1(a)所示)。
针对构成3维外轮廓的2维平面片与2维平面片之间的二面角计算,比构成2维外轮廓的1维边与1维边之间的夹角计算,要复杂。然而,二面角的计算可以简化处理:将嵌入于三维空间中的任意姿态的平面片束(如附图2(a)所示)刚性变换至垂直于XOY的平面片束(如附图2(b)所示),再将每个平面片映射到XOY上的直线段(如附图2(c)所示)。通过以上处理,二面角的计算简化为一维夹角的计算。更为具体的,在附图2(a)中,ABCD代表了平面片f1,ABOP代表了平面片f2,ABEF代表了平面片f5,平面片f3和f4类似定义,这些平面片嵌入于三维空间中;在附图2(b)中,f1,f2,f5,f3,f4统一垂直于XOY平面;在附图2(c)中,平面片f1,f2,f5,f3,f4都各自简化为XOY平面中的一条直线段。
值得注意的是,之所以称为“三维外轮廓”,其是由处于最外围的平面片的构成,一方面其内部是呈现“掏空”的,另一方面其外部也是呈现“空旷”的。利用以上极限特征,可以认为:针对三维外轮廓外部的“无限远体”,可以看作是三维外轮廓内部的“最小体集合”在三维空间中的补集,故而“无限远体”与“最小体集合”的边界相同,即三维外轮廓。
以下结合附图和具体实施例详细说明本发明技术方案。
本发明采用的三维空间数据模型中,主要包括节点、边、环、平面片、壳、体这6类基元。针对这6类基元的具体说明如下:
(1)节点(3DPoint)
节点是嵌入于三维空间中的一类0维基元,它记录了X,Y,Z坐标。节点(Point)在数据库中一般记为Node,它在欧拉公式中一般记为Vertex。
(2)边(Edge)
边是嵌入于三维空间中的一类1维基元,它是由起始节点和终止节点封闭的一条有向直线段。边的物理方向由起始节点指向终止节点。边的起始节点和终止节点不能够是同一个点。边通常也记为弧段。边同胚于1维流形。
(3)环(Ring)
环是嵌入于三维空间中的1维基元,它由至少3条边封闭而成,这些边形成一个集合,称为环的构造边集合(R.edges);包含于这些边中的所有节点,称环的构造节点集合(R.vertices)。环是1维基元,边是1维基元,且环是边的聚合。环是封闭的,即构成环的第一条边和最后一条边具有公共节点。尽管以上没有显式约束环的所有构造边必须位于同一个平面片上,但直接引用环对象的只有平面片对象,而平面片上所有点必然位于同一平面上,所以默认环的所有构造边位于同一个平面上。环通常也记为循环(Loop)或圈(Cycle)。
(4)平面片
平面片是嵌入于三维空间中的一类2维基元,它是由唯一外环和0至多个内环封闭而成的区域。平面片的边界是环。平面片的唯一外环上的边和所有内环上的边共同形成一个集合,该集合称为平面片的构造边集合(F.edges)。以上边中包含的所有节点,称平面片的构造节点集合(F.vertices)。一个平面片包含至少3条构造边。平面片是相对简单多边形,可以是凸的,可以是凹的。当一个平面片只由3条边构成时,平面片退化为三角形。值得注意的是,不允许平面片的外环与内环接触,内环与内环之间也不允许发生接触或嵌套。因此,平面片同胚于2维流形,而环不一定同胚于1维流形。
平面片具有法向量。在平面片任意一个环内,其构造边的排列是有序的,即构造边集合有一定的走向,也即前一条边与后一条边一定有公共节点;同时,每条边本身有物理方向,即从边的起始节点指向边的终止节点。但在同一个环内,并不是所有边的方向都一致,也即前一条边的终止节点与后一条边的起始节点并不一定是同一个点。因此,需要一个统一规则来决定平面片的法向量,通常采用右手定则(即四指方向为平面片的唯一外环中边的环绕方向,大拇指方向为法向量方向)。进一步的,当平面片的唯一外环的边集合确定后,该边集合的环绕方向就与每条边的本身方向作比较,如果一致则该条边标记”+”,否则标记”-”。
任一平面片都具有两侧。因为每个平面片都有一个所在超平面,该超平面将三维空间分成两部分,一般把平面片法向量所在一侧称为正面,把异于平面片法向量的一侧称为背面。在GoogleSketchup中,平面片的正面默认绘制为白色,平面片的背面默认绘制为灰色。
(5)壳(Shell)
壳是嵌入于三维空间中的一类2维基元,它由至少4个平面片构成。在二维情况中,环是多边形的边界;类似的,在三维情况中,壳是体的边界。具体的,多边形由1个外环和0至多个内环封闭,而体由1个外壳和0至多个内壳封闭。
(6)体(Body)
体是嵌入于三维空间中的一类3维基元,它由1个外壳和0至多个内壳封闭。换言之,体由至少4个平面片封闭。体的边界是壳,或称体的边界是平面片,它们形成一个集合,称体的构造平面片集合(B.facets)。体内部不存在其它基元,也称最小体。平面片的法向量(normalVector)只有1个,具有客观的计算数值。与此不同,一个平面片的方向(dir)是主观定义的,而且认为有两个,即后向(标记为”1”)和前向(标记为”2”)。其中,针对每个平面片而言,当该平面片的法向量指向某个体的外部时,此时的平面片(注意:不用“该平面片”)称为前向平面片(即使用了平面片的正面),该体称为后向体;当该平面片的法向量指向某个体的内部时,此时的平面片(注意:不用“该平面片”)称为后向平面片(即使用了平面片的背面),该体称前向体。
本发明的总体上包括4个大步骤,即:(1)首先,根据连通性找到多个连通分支;(2)然后,找到其中具备极值顶点的那个连通分支,该连通分支包含了三维外轮廓(同时包含了用于构造内部最小体的面片);(3)之后,找到具备极值顶点的最外围的平面片;(4)接着,从最外围的平面片出发,采用深度优先遍历(DFS,Depth-firstSearch)依次找到构成三维外轮廓包含的所有平面片。
针对大步骤(1)和(2),主要利用了拓扑学中的连通性原理。针对大步骤(3),主要利用了计算几何原理。针对大步骤(4),同时利用了拓扑学中连通性与计算几何这两个原理。同时,在大步骤(4)中,之所以采用深度优先遍历(DFS),是因为在“面向地籍的三维空间数据模型”相关研究中目前都采用广度优先遍历(BFS,Breadth-firstSearch),两者搜索结果相同,但在搜索过程有所不同,包括采用广度优先遍历则呈现“环状”搜索效果,而采用深度优先遍历则呈现“条带状”搜索结果。针对后者,在目前的相关研究中几乎没有具体讨论,所以在本发明中详述。
附图3给出了针对带内穴的简单案例寻找三维外轮廓的简要过程分析。如附图3所示,从左到右依次为初始数据(包含多个连通分支)、包含三维外轮廓的连通分支、三维外轮廓示意图,初始输入数据为由多个面片构成的大立方体,最终形成5×5×5个小立方体,每个小立方体中都有一个内穴。借助连通性原理,因为每个内穴是一个单独的连通分支,所以总共形成了126(126=5×5×5+1)个连通分支,其中125个连通分支为内穴,另外1个连通分支为包含三维外轮廓的连通分支,稍后利用大步骤(3)和(4)找到以上连通分支中包含的最外围平面片集合,即三维外轮廓。
附图4给出了带穿洞的简单案例寻找三维外轮廓的简要过程分析。如附图4所示,从左到右依次为初始数据(以普通模式观察)、初始数据(以透视模式观察)、三维外轮廓(以透视模式观察),初始输入数据为由多个面片构成的带穿洞的封闭实体,穿洞并没有增加连通分支的个数,穿洞部分包含的面片事实上属于三维外轮廓的一部分,稍后利用大步骤(3)和(4)找到以上连通分支中包含的最外围的平面片集合,即三维外轮廓。
需要注意的是,针对大步骤(3),往往认为包含最多面片个数的连通分支为包含三维外轮扩的连通分支。事实上,这种从集合论角度来获取包含三维外轮廓的连通分支的方法是错误的,设想一个仅仅由6个大面片封闭的立方体内部有一个小球体,而该小球体由上百个(甚至上千个)小面片逼近而成,此时从集合论角度获取三维轮轮廓是不适用的。还是应该利用计算几何原理(以下详述)。
更为具体的,本发明阐述的自动获取三维外轮廓的具体实现步骤如下:
单个连通分支内所有最小体共同形成一个较大的体,称为三维外轮廓体(简称外轮廓体)。在三维空间中去除那些常规认知的、具备有限体积的最小体之后,剩余的三维空间称为无穷远体。无穷远体可以看作所有常规体在三维空间的补集。无穷远体的边界(由平面片构成)与相应外轮廓体的边界(由平面片构成)相同。因此,针对搜索三维外轮廓体的边界,也即等价于搜索无穷远体的边界。无穷远体的边界具有极值性,采用最大Z值、最小Z值、最大X值、最小X值、最大Y值、最小Y值作为判断使用的极值均可,以下以Z轴正向最大值为例阐述三维外轮廓体的边界(也即三维外轮廓)的具体构造过程。包括如下步骤:
(1)根据连通性找到原始给定平面片集合中存在的多个连通分支;
(2)确定每个连通分支包含的平面片集合,每个平面片集合中的平面片之间通过边相互邻接;
(3)针对每个连通分支,获取每个连通分支的最小外接盒。计算该最小外接盒的最大Z值,简称“分支最大Z值”;
(4)比较所有的“分支最大Z值”,获得其中具备最大“分支最大Z值”的那个连通分支,以后操作都针对该连通分支进行,即确定该连通分支为后续操作对象,且最大“分支最大Z值”简称为“最大Z值”;
(5)创建一个结果平面片,内容为空;
(6)创建一个相接平面片集合,内容为空。
(7)将(4)所确定连通分支相应平面片集合作为当前的给定平面片集合,针对给定平面片集合中的每个平面片的每个顶点,比较顶点的Z值与“最大Z值”:若存在有一个或者一个以上顶点等于“最大Z值”的平面片,则将该平面片加入以上相接平面片集合中。
(8)针对给定平面片集合,如果存在所有顶点的Z值等于“最大Z值”的平面片,将该平面片标记为平行平面片,并转入步骤(9),进一步的,如果客观上存在多个平行平面片,则选取其中任意一个作为平行平面片,并转入步骤(9);如果不存在,则转入步骤(10)。
(9)比较平行平面片的法向量与三维矢量(0,0,1)的夹角大小,进行以下处理,然后转入步骤(12):
(i)若两者夹角为0,则将该平面片标记为结果平面片,且结果平面片的方向为1;
(ii)若两者夹角为180,则将该平面片标记为结果平面片,且结果平面片的方向为2;
(10)针对相接平面片集合中的每个平面片,计算其法向量与三维矢量(0,0,1)的夹角,该夹角记为“原始夹角”。比较原始夹角与90进行如下处理计算“处理夹角”,然后进入步骤(11):
(i)若原始夹角处于(0,90),则不处理,原始夹角即“处理夹角”;
(ii)若原始夹角处于(90,180),则将180减去原始夹角,结果标记为“处理夹角”;
(11)从相接平面片集合中的所有平面片中,选择“处理夹角”最小的那个平面片,将该平面片标记为结果平面片。
同时,根据结果平面片的“原始夹角”计算结果平面片的方向:
(i)若原始夹角处于(0,90),则结果平面片的方向为1;
(ii)若原始夹角处于(90,180),则结果平面片的方向为2;
(12)搜索结束,结果平面片即外轮廓体边界上的一个平面片,并返回结果平面片。
(13)创建外轮廓体,内容为空;
(14)创建当前平面片(当前平面片的大小始终为一个),采用结果平面片初始化;
(15)针对当前平面片,读取此时当前平面片的方向,将该平面片以及此时的方向加入外轮廓体中,同时对该平面片此时方向对应的侧面作标记:
(i)若此时当前平面片的方向为1(即表明搜索前向无穷远体),则该平面片的背面标记“已使用”;
(ii)若此时当前平面片的方向为2(即表明搜索后向无穷远体),则该平面片的正面标记“已使用”;
(16)针对当前平面片,创建推进平面片(推荐平面片的大小始终为一个),初始化内容为空。
(17)从当前平面片包含的所有边中取一条边,计算如下两份数据:
(a)最邻近平面片
与该边邻接的、同样用于构成外轮廓体的平面片,称为最邻近平面片。与该边相接的所有平面片形成一个集合,称为相接平面片束。最邻近平面片总是存在于相接平面片束中。最邻近平面片的计算结果,与当前平面片有关,与当前平面片的方向有关:
(i)若当前平面片的方向为1(即表明搜索前向无穷远体),则在相接平面片束中,顺着当前平面片的正面望去,寻找与当前平面片沿着以上边夹角最小的那个平面片,此时该平面片是最邻近平面片;
(ii)若当前平面片的方向为2(即表明搜索后向无穷远体),则在相接平面片束中,顺着当前平面片的正面望去,寻找与当前平面片沿着以上边夹角最大的那个平面片,此时该平面片是最邻近平面片;
(b)最邻近平面片的方向
若最邻近平面片与当前平面片相容,则对最邻近平面片赋予与当前平面片一样的方向;若最邻近平面片与当前平面片不相容,则对最邻近平面片赋予与当前平面片不同的方向。具体的,
(i)若当前平面片方向为1,且两者相容,则最邻近平面片方向为1;
(ii)若当前平面片方向为1,且两者不容,则最邻近平面片方向为2;
(iii)若当前平面片方向为2,且两者相容,则最邻近平面片方向为2;
(iv)若当前平面片方向为2,且两者不容,则最邻近平面片方向为1;
(18)针对当前执行(17)获得的对子(即最邻近平面片,及其方向)进行判断,若对子在当前的外轮廓体中不存在,则将相应最邻近平面片加入以上推进平面片中,进入(19);若对子在在当前外轮廓体中存在,则从当前平面片包含的所有边中依次取一下条边,返回执行(17),同样确定最近平面片以及方向,直至对当前平面片包含的所有边都处理完毕,进入(19)。
(19)清空当前平面片,将推进平面片作为新的当前平面片;之后,清空推进平面片。
(20)基于新的当前平面片返回步骤(15),重复步骤(15)-(20),直至得到的推进平面片为空。此时,三维外轮廓搜索完毕。
以上小步骤(1)-(2),体现了大步骤(1),即“根据连通性找到多个连通分支”。
以上小步骤(3)-(4),体现了大步骤(2),即“找到包含三维外轮廓的那个连通分支”。
以上小步骤(5)-(12),体现了大步骤(3),即“找到具备极值顶点的最外围平面片”。
以上小步骤(13)-(20),体现了大步骤(4),即“找到三维外轮廓包含的所有平面片”。
为了便于理解深度优先遍历(DFS)在寻找三维外轮廓中是具体如何作用的(体现于步骤14,16,17,18,19中),以下给出了具体案例说明,如附图5至附图21所示:
附图5、附图6、附图7、附图8给出了深度优先遍历(DFS)在由5×5×6个面片构成的三维外轮廓中调用的实例。其中,附图5为输入数据,阐述了每个平面片中边的环绕走向;附图6、附图7、附图8为采用深度优先遍历在以上实例中形成的12条带(也称分支或Branch),其中,附图6为二维展开图形式,附图7和附图8为对应的多叉树形式。
更为详细的,在附图5中,可以看到:每个平面片由边依次环绕而封闭,如平面片a1由下侧边(标记为1)、右侧边(标记为2)、上侧边(标记为3)、左侧边(标记为4)呈逆时针方向依次环绕而封闭,平面片b1由上侧边(标记为1)、左侧边(标记为2)、下侧边(标记为3)、右侧边(标记为4)呈现逆时针方向依次环绕而封闭;在附图6中,可以看到:每个连通分支包含的面片都用带箭头直线段依次连接(呈现条带状),而且箭头连接方向表达了每个条带中面片的排列方向,它与附图7和附图8的多叉树中相应条带包含的面片依次被搜索到的顺序是一致的。例如,针对附图6中的第一个条带(Branch1)依次包含平面片a1,a6,a11,a16,a21,a22,b2,b1,e5,e4,e3,e2,e1,d5,d10,d9,d8,d3,d4,a2,a7,a12,a17,a18,a23,b3,b8,b7,b6,b11,e15,e10,e9,e8,e13,e12,e7,e6,e11,d15,d14,d19,d18,d13,d12,d11,d6,d1,a5,a4,a9,a14,a19,a24,b4,b5,b10,c6,c11,b15,b14,b9,其与附图7和附图8的多叉树中的第一个分支(Branch1)包含的平面片集合以及平面片集合中平面片之间的排列次序保持一致。
类似的,附图9、附图10、附图11、附图12给出了深度优先遍历(DFS)在由4×4×6个面片构成的三维外轮廓中调用的实例。其中,附图8为输入数据,阐述了每个平面片中边的环绕走向;附图10、附图11、附图12为采用深度优先遍历在以上实例中形成的9个分支(Branch),其中,附图10为二维展开图形式,附图11和附图12为对应的多叉树形式。
类似的,附图13、附图14、附图15给出了深度优先遍历(DFS)在由3×3×6个面片构成的三维外轮廓中调用的实例。其中,附图13为输入数据,阐述了每个面片中边的环绕方向;附图14、附图15为采用深度优先遍历在以上实例中形成的7个分支(Branch),其中,附图14为二维展开图形式,附图15为对应的多叉树形式。
类似的,附图16、附图17、附图18给出了深度优先遍历(DFS)在由2×2×6个面片构成的三维外轮廓中调用的实例。其中,附图16为输入数据,阐述了每个面片中边的环绕方向;附图17、附图18为采用深度优先遍历在以上实例中形成的3个分支(Branch),其中,附图17为二维展开图形式,附图18为对应的多叉树形式。
类似的,附图19、附图20、附图21给出了深度优先遍历(DFS)在由1×1×6个面片构成的三维外轮廓中调用的实例。其中,附图19为输入数据,阐述了每个面片a、b、c、d、e、f中边的环绕方向;附图20、附图21为采用深度优先遍历在以上实例中形成的1个分支(Branch),其中,附图20为展开图形式,附图21为对应的多叉树形式。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (3)
1.一种基于深度优先策略的地理空间三维外轮廓自动构建方法,其特征在于:首先根据连通性找到多个连通分支,然后找到其中具备极值顶点的连通分支,该连通分支包含了三维外轮廓,之后找到具备极值顶点的最外围的平面片,接着从最外围的平面片出发采用深度优先遍历依次找到构成三维外轮廓包含的所有平面片,实现方式包括以下步骤,
步骤1,根据连通性找到原始给定平面片集合中存在的多个连通分支;
步骤2,确定每个连通分支包含的平面片集合,每个平面片集合中的平面片之间通过边相互邻接;
步骤3,针对每个连通分支,获取每个连通分支的最小外接盒;计算该最小外接盒的最大极值,简称“分支最大极值”;
步骤4,比较所有的“分支最大极值”,获得具备最大“分支最大极值”的那个连通分支,确定该连通分支为后续操作对象,且以上极值简称为“最大极值”;
步骤5,创建一个结果平面片,内容为空;
步骤6,创建一个相接平面片集合,内容为空;
步骤7,将步骤4所确定的连通分支相应平面片集合作为当前的给定平面片集合,针对给定平面片集合中的每个平面片的每个顶点,比较顶点的极值与“最大极值”,若存在有一个或者一个以上顶点等于“最大极值”的平面片,则将该平面片加入以上相接平面片集合中;
步骤8,针对给定平面片集合,如果存在所有顶点的极值等于“最大极值”的平面片,将该平面片标记为平行平面片,并转入步骤9;如果不存在,则转入步骤10;
步骤9,比较平行平面片的法向量与三维矢量(0,0,1)的夹角大小,进行以下处理并转入步骤12,
若两者夹角为0,则将该平面片标记为结果平面片,且结果平面片的方向为1;
若两者夹角为180,则将该平面片标记为结果平面片,且结果平面片的方向为2;
步骤10,针对相接平面片集合中的每个平面片,计算法向量与三维矢量(0,0,1)的夹角,该夹角记为“原始夹角”,进行如下处理计算“处理夹角”,然后进入步骤11,
若原始夹角处于(0,90),则不处理,原始夹角即“处理夹角”;
若原始夹角处于(90,180),则将180减去原始夹角,结果标记为“处理夹角”;
步骤11,从相接平面片集合中的所有平面片中,选择“处理夹角”最小的平面片,将该平面片标记为结果平面片;同时,根据结果平面片的“原始夹角”进行如下处理计算结果平面片的方向,
若原始夹角处于(0,90),则结果平面片的方向为1;
若原始夹角处于(90,180),则结果平面片的方向为2;
步骤12,搜索结束,结果平面片为外轮廓体边界上的一个平面片,返回结果平面片;
步骤13,创建外轮廓体,内容为空;
步骤14,创建当前平面片,采用结果平面片初始化;
步骤15,针对当前平面片,读取此时当前平面片的方向,将该平面片以及此时的方向加入外轮廓体中,同时对该平面片此时方向对应的侧面作如下处理进行标记,
若此时当前平面片的方向为1,则该平面片的背面标记“已使用”;
若此时当前平面片的方向为2,则该平面片的正面标记“已使用”;
步骤16,针对当前平面片,创建推进平面片,初始化内容为空;
步骤17,从当前平面片包含的所有边中取一条边,计算最邻近平面片及相应方向;
步骤18,针对步骤17所得最邻近平面片及方向分别进行判断,若最邻近平面片及方向在当前的外轮廓体中不存在,则将相应最邻近平面片加入以上推进平面片,若存在则从当前平面片包含的所有边中依次取下一条边,返回执行步骤17确定最邻近平面片及相应方向,直到对当前平面片包含的所有边处理完毕,进入步骤19;
步骤19,清空当前平面片,将推进平面片作为新的当前平面片;之后,清空推进平面片;
步骤20,基于新的当前平面片返回步骤15,直至得到的推进平面片为空,三维外轮廓搜索完毕。
2.根据权利要求1所述基于深度优先策略的地理空间三维外轮廓自动构建方法,其特征在于:步骤17中,对某条边计算最邻近平面片及相应方向实现方式如下,
首先,设与该边邻接的且同样用于构成外轮廓体的平面片,称为最邻近平面片;与该边相接的所有平面片形成一个集合,称为相接平面片束,最邻近平面片总是存在于相接平面片束中;计算最邻近平面片如下,
若当前平面片的方向为1,则在相接平面片束中,顺着当前平面片的正面望去,寻找与当前平面片沿着以上边夹角最小的那个平面片,此时该平面片是最邻近平面片;
若当前平面片的方向为2,则在相接平面片束中,顺着当前平面片的正面望去,寻找与当前平面片沿着以上边夹角最大的那个平面片,此时该平面片是最邻近平面片;
然后,计算最邻近平面片的方向,若最邻近平面片与当前平面片相容,则对最邻近平面片赋予与当前平面片一样的方向;若最邻近平面片与当前平面片不相容,则对最邻近平面片赋予与当前平面片不同的方向。
3.根据权利要求1或2所述基于深度优先策略的地理空间三维外轮廓自动构建方法,其特征在于:所述极值为最大Z值、最小Z值、最大X值、最小X值、最大Y值或最小Y值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510229660.1A CN104809760B (zh) | 2015-05-07 | 2015-05-07 | 基于深度优先策略的地理空间三维外轮廓自动构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510229660.1A CN104809760B (zh) | 2015-05-07 | 2015-05-07 | 基于深度优先策略的地理空间三维外轮廓自动构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104809760A CN104809760A (zh) | 2015-07-29 |
CN104809760B true CN104809760B (zh) | 2016-03-30 |
Family
ID=53694565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510229660.1A Expired - Fee Related CN104809760B (zh) | 2015-05-07 | 2015-05-07 | 基于深度优先策略的地理空间三维外轮廓自动构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104809760B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105225272B (zh) * | 2015-09-01 | 2018-03-13 | 成都理工大学 | 一种基于多轮廓线三角网重构的三维实体建模方法 |
CN111247802B (zh) * | 2019-01-10 | 2023-07-07 | 深圳市大疆创新科技有限公司 | 用于三维数据点集处理的方法和设备 |
CN111699684B (zh) * | 2019-06-14 | 2022-05-06 | 深圳市大疆创新科技有限公司 | 三维数据点的编解码方法和装置 |
CN111191083B (zh) * | 2019-09-23 | 2021-01-01 | 牧今科技 | 用于对象标识的方法和计算系统 |
CN111274739B (zh) * | 2020-01-09 | 2020-11-13 | 广东工业大学 | 一种用于计算流体动力学分析的搜索方法及其系统 |
CN116402988B (zh) * | 2023-05-11 | 2023-12-19 | 北京冰河起源科技有限公司 | 三维模型处理方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090945A (zh) * | 2014-06-30 | 2014-10-08 | 武汉大学 | 一种地理空间实体构建方法及系统 |
US8948461B1 (en) * | 2005-04-29 | 2015-02-03 | Hewlett-Packard Development Company, L.P. | Method and system for estimating the three dimensional position of an object in a three dimensional physical space |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MY172087A (en) * | 2012-05-29 | 2019-11-13 | Mimos Berhad | A terrain profile determination system and method thereof |
-
2015
- 2015-05-07 CN CN201510229660.1A patent/CN104809760B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8948461B1 (en) * | 2005-04-29 | 2015-02-03 | Hewlett-Packard Development Company, L.P. | Method and system for estimating the three dimensional position of an object in a three dimensional physical space |
CN104090945A (zh) * | 2014-06-30 | 2014-10-08 | 武汉大学 | 一种地理空间实体构建方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104809760A (zh) | 2015-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104809760B (zh) | 基于深度优先策略的地理空间三维外轮廓自动构建方法 | |
Lozano-Perez | A simple motion-planning algorithm for general robot manipulators | |
Rusu et al. | Perception for mobile manipulation and grasping using active stereo | |
CN101408991B (zh) | 一种插值型细分和逼近型细分相融合的曲面造型方法 | |
CN112669434A (zh) | 一种基于网格与包围盒的碰撞检测方法 | |
JP6073110B2 (ja) | 3次元データ生成システム | |
CN104715507B (zh) | 一种基于曲面片的三维地理实体自动构建方法 | |
Pütz et al. | Continuous shortest path vector field navigation on 3d triangular meshes for mobile robots | |
Patrikalakis et al. | Surface intersections for geometric modeling | |
Rekleitis et al. | Efficient topological exploration | |
KR100940283B1 (ko) | 동일해상도의 옥트리 구조에서의 인접한 이웃셀의 주소검색방법 | |
Giachetti et al. | SHREC’14 track: automatic location of landmarks used in manual anthropometry | |
Fan et al. | Matching 3-D objects using surface descriptions | |
CN116069040A (zh) | 一种管道曲面约束的爬壁机器人路径规划方法和装置 | |
CN111815691B (zh) | 一种网格数据结构的邻域访问方法、装置、设备及介质 | |
Strodthoff et al. | Layered Reeb graphs for three-dimensional manifolds in boundary representation | |
Adiyatov et al. | Sparse tree heuristics for rrt* family motion planners | |
Ma et al. | Tool path planning with confined scallop height error using optimal connected fermat spirals | |
Karamete et al. | An algorithm for discrete booleans with applications to finite element modeling of complex systems | |
Grossmann | From 3D line segments to objects and spaces | |
Lysak et al. | Interpretation of line drawings with multiple views | |
CN114648618B (zh) | 一种室内空间三维拓扑关系构建方法及系统 | |
Wan et al. | A new approach to generic design feature recognition by detecting the hint of topology variation | |
Gester et al. | Largest empty square queries in rectilinear polygons | |
Sun et al. | An automatic method for complete triangular mesh conversion into quadrilateral mesh for multiple domain geometry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160330 Termination date: 20180507 |