CN107067106A - 一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法 - Google Patents
一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法 Download PDFInfo
- Publication number
- CN107067106A CN107067106A CN201710237156.5A CN201710237156A CN107067106A CN 107067106 A CN107067106 A CN 107067106A CN 201710237156 A CN201710237156 A CN 201710237156A CN 107067106 A CN107067106 A CN 107067106A
- Authority
- CN
- China
- Prior art keywords
- line segment
- vector
- polygon
- vector line
- point
- 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.)
- Pending
Links
- 238000000205 computational method Methods 0.000 title claims abstract description 22
- 239000013598 vector Substances 0.000 claims abstract description 311
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000001914 filtration Methods 0.000 claims abstract description 3
- 238000012216 screening Methods 0.000 claims description 25
- 230000015572 biosynthetic process Effects 0.000 claims description 19
- 238000003786 synthesis reaction Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 15
- 238000013519 translation Methods 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 9
- 230000002542 deteriorative effect Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 2
- 230000002776 aggregation Effects 0.000 claims description 2
- 230000002194 synthesizing effect Effects 0.000 claims description 2
- 241000208340 Araliaceae Species 0.000 claims 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 1
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 1
- 235000008434 ginseng Nutrition 0.000 claims 1
- 238000010189 synthetic method Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 6
- 239000002994 raw material Substances 0.000 description 6
- 230000001788 irregular Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 239000010985 leather Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000686 essence Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/043—Optimisation of two dimensional placement, e.g. cutting of clothes or wood
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/04—Manufacturing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Operations Research (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Manufacturing & Machinery (AREA)
- Health & Medical Sciences (AREA)
- Game Theory and Decision Science (AREA)
- Primary Health Care (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,首先,该方法通过判定多边形的各个角顶点(矢量边)与另一多边形各条矢量边(角顶点)的接触情况,计算产生初始的矢量线段集合;然后,利用初始矢量线段的交点分割矢量线段;最后,采用“最小旋转角”策略筛选合适的矢量线段来合成得到外部临界多边形和可能存在的若干个内部临界多边形(包括特殊的退化点和退化线),即为这两个多边形之间的外靠接临界多边形(集合)。该发明通过矢量线段合成方法计算形状任意的两个多边形之间的外靠接临界多边形,不仅能够降低计算外靠接临界多边形的时间复杂度,同时能够提高临界多边形计算方法的准确性及适用范围。
Description
技术领域
本发明涉及二维坐标系统中几何多边形之间的外靠接临界多边形计算技术领域,特别是不规则多边形之间的外靠接临界多边形的快速和准确的计算技术。
背景技术
外靠接临界多边形计算问题广泛存在于钣金、服装、木材、皮革、石材、玻璃等原材料下料加工作业中,例如现代制造业中的钣金切割、服装裁剪、木材加工、皮革切割等下料作业,都需要采用专业的技术手段先在原材料上对需要加工或裁切的部件进行靠接排放,以获得满意的原材料利用率。
这些技术应用所涉及的科学问题在理论上称为二维排样优化问题,其研究内容是根据给定的原材料以及需加工的部件需求,确定部件在原材料上的最佳排放方案,以获得最佳的材料利用率。由于问题具有组合特性和几何特性,其计算难度很大。特别是在涉及不规则部件的二维优化排样应用中,由于部件轮廓的不规则和任意性,问题的计算复杂度急剧增加,给优化问题的求解带来极大困难。目前,原材料下料排样多采用计算机技术自动完成。自动化排样作为降低生产成本、提高工作效率的重要技术手段,在现代制造业中至关重要。
在寻找良好的排样方案时,需要大量地考虑部件之间的靠接。此时,不规则部件之间的外靠接临界多边形是被大量使用的基础手段和几何工具。为了获得较好的原材料利用率,就需要使用准确、可靠和快速的外靠接临界多边形计算方法。外靠接临界多边形的几何定义为:对于两个形状任意的多边形A和B,让多边形A固定不动,多边形B绕A的外部轮廓一周做不旋转的平移运动,运动过程中保持B与A接触但不重叠,那么B上预先选定的某个参考点在B的移动过程中所形成的一个或若干个封闭的多边形就是B相对于A的外靠接临界多边形(集合)。外靠接临界多边形给出了二维部件(体现为多边形)之间所有可能的外靠接位置,其计算问题是二维排样问题中的基础性几何问题,也是二维排样应用中的关键技术问题。因此,一种快速、准确、适应性强的外靠接临界多边形计算方法是二维排样问题的难点和重点,也是本发明主要解决的问题。
虽然国内外众多研究人员在多边形(特别是不规则多边形)之间的外靠接临界多边形计算上已经做了大量的工作,目前常用的方法有移动碰撞法、明科夫斯基矢量和法、斜率图法等,但是这些方法都有不同的缺陷,比如移动碰撞法无法获得带有狭小凹槽多边形的内部临界多边形,且计算复杂度高;明科夫斯基矢量和法只适用于凸多边形之间的外靠接临界多边形计算;斜率图法无法解决两个多边形都是凹多边形的外靠接临界多边形计算。目前来看,现有的外靠接临界多边形计算方法适用面窄且时间复杂度高,在实际应用中有诸多限制。要提高我国的自动化排样技术,需要对这些关键基础技术重点研究,解决其关键难题,才能为后续其他在此基础上的研究奠定基础,获得事半功倍的效果。
就目前调研结果看,在国内尚无利用矢量线段合成方法计算两个任意形状多边形之间的外靠接临界多边形的相关论文和专利授权。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法。
为了便于准确描述,对发明所述方法中涉及的若干数学概念与数学符号作说明如下:
1、发明中所用的坐标空间均为平面坐标空间,并采用笛卡尔直角坐标系。为方便描述,假定水平向右方向为X轴正方向,水平向左方向为X轴负方向,垂直向上方向为Y轴正方向,垂直向下方向为Y轴负方向。
2、以符号A、B分别指代平面坐标系中两个形状任意的多边形。为方便描述,本发明中所指的外靠接临界多边形均指多边形B相对于多边形A的外靠接临界多边形,即多边形B绕多边形A平移一周所形成的外靠接临界多边形。
3、多边形A、B的表示方式既可采用多边形轮廓的顶点集合表示方式,也可以采用多边形轮廓的边集合表示方式;顶点集合或边集合的描述顺序既可采用逆时针方向顺序描述,也可以采用顺时针方向顺序描述。为方便描述,本发明以逆时针方向顶点集合的多边形表示方法来描述有关计算方法。
为了实现发明目的,本发明采用的计算方法的方案为:先计算得到多边形的角顶点相对于另一多边形的矢量边移动产生的矢量线段,对产生的矢量线段进行必要的分割处理后,再对分割处理后的矢量线段采取“最小旋转角”策略来合成一个外部临界多边形和可能存在的内部临界多边形,则得到的一个或多个临界多边形即为所需计算的多边形之间的外靠接临界多边形(集合)。
对于给定的任意形状的两个多边形A、B,若需计算多边形B相对多边形A的外靠接临界多边形,方法具体包括如下步骤:
S1、判断一个多边形的各个角顶点(矢量边)与另一个多边形各个矢量边(角顶点)的接触情况;
S2、多边形的参考点选取。多边形B轮廓边上的任意一个点(包括其角顶点和矢量边上的点)均可选为参考点。参考点一旦选定,在外靠接临界多边形的计算过程中不可更改;
S3、计算产生初始的矢量线段。利用步骤S1得到的能接触的“角顶点-矢量边”组合以及步骤S2选取的参考点,让多边形B的各个角顶点(和各矢量边)在A的能接触的矢量边(和角顶点)上移动,此时参考点的移动将产生矢量线段;产生的所有矢量线段构成初始的矢量线段集合,两个多边形之间的外靠接临界多边形必定包含在上述方式产生的矢量线段之中;
S4、矢量线段的分割处理,此步骤对在步骤S3中计算产生初始的矢量线段进行分割处理;通过此步骤的分割处理,可将初始的矢量线段集合处理成后面合成外靠接临界多边形所需的矢量线段集合;
S5、通过筛选矢量线段合成外部临界多边形,具体步骤如下:
S5.1、在筛选矢量线段合成外部临界多边形前,选择一个初始出发点和一个初始的参考方向;
S5.2、采用“最小旋转角”策略逐步筛选矢量线段来合成外部临界多边形;
S6、通过筛选矢量线段合成可能存在的内部临界多边形。
S7、计算可能存在的退化情形。在一些特殊情况下,内部临界多边形可能会出现退化情形,包括退化为点和退化为线段两种情形;
优选的,步骤S1中判定各个角顶点(矢量边)与另一个多边形各个矢量边(角顶点)是否接触,若角顶点的出边相对于其入边逆时针转过的角度大于180度,则判断角顶点和矢量边不可能接触;若不大于180度,且该矢量边位于角顶点的入边与出边反向延长线所构成的逆时针方向夹角区域内,则判断为两者能接触。通过此步骤,可计算获得两个多边形的各个角顶点与各条矢量边之间能接触的所有“角顶点-矢量边”组合。
优选的,步骤S3中初始的矢量线段集合的获取包括两个部分:
(1)、针对多边形B的角顶点与多边形A的矢量边的每个能接触“角顶点-矢量边”组合,先平移多边形B使其在组合中的角顶点与A中对应矢量边的起点重合,然后沿矢量边方向平移多边形B,直到该角顶点到达该矢量边的终点位置(且多边形B在平移过程中始终保持其角顶点与该矢量边相接触),此过程中多边形B的参考点的移动将产生一条矢量线段。通过这一计算,可产生一组基于多边形B角顶点和多边形A矢量边的能接触“角顶点-矢量边”组合的矢量线段;
(2)、针对多边形A的角顶点与多边形B的矢量边的每个能接触“角顶点-矢量边”组合,先平移多边形B使其在该组合中的矢量边的起点与A中对应的角顶点重合,然后沿该矢量边的反方向平移多边形B,直到该矢量边的终点到达角顶点位置(多边形B在平移过程中始终保持其矢量边与该角顶点相接触),此过程中多边形B的参考点的移动也将产生一条矢量线段。通过这一计算,可产生一组基于多边形A角顶点和多边形B矢量边的能接触“角顶点-矢量边”组合的矢量线段;
其中上述两部分计算得到的两组矢量线段构成本算法所需的初始的矢量线段集合。
优选的,步骤S4的矢量线段分割处理包括两种情形:
①若矢量线段之间存在相交,其中两线段重合或部分重合,以及一线段的端点与另一线段的端点重合不在此范畴内,则计算出它们的交点,并用交点分割该交点所在的矢量线段,每个交点都将其所在的矢量线段分割成两条矢量线段;
②若某些矢量线段出现重合,其中长度相同的矢量线段完全重合的情形不在此范畴内,则用矢量线段位于重合部分的端点来分割矢量线段;
其中所述的分割处理仅针对初始矢量线段集合中满足所述的两种情形的矢量线段,分割得到的新矢量线段将加入矢量线段集合,而被分割的矢量线段则从集合中剔除;那些无需分割的矢量线段仍保留在集合中。
优选的,步骤S5.1所述的初始出发点需在步骤S4得到的所有矢量线段的端点中处于极限位置的端点中选取(有最下端点、最上端点、最右端点和最左端点四类端点可以选择),并根据选择的初始出发点的情况选择一个对应的初始参考方向:X轴正方向与最下端点配对,X轴负方向与最上端点配对,Y轴正方向与最右端点配对,Y轴负方向与最左端点配对(若多边形A、B用顺时针表示,则各端点配对的坐标轴不变,但坐标轴的方向与上面所述方向相反)。
优选的,步骤S5.2采用“最小旋转角”策略逐步筛选矢量线段来合成外部临界多边形的具体步骤如下:
S5.2.1、对于选定的初始的出发点与参考方向,在矢量线段集合中所有以该出发点为起点的矢量线段(简称为出发点的出边)中,找到一条相对于参考方向具有最小旋转角的矢量线段,记录该矢量线段,并将其矢量方向作为新的参考方向、其终点作为新的出发点,再将该线段从矢量线段集合中删除(以保证在后面的矢量线段筛选中不再考虑该矢量线段);
S5.2.2、针对新的出发点和参考方向,在当前矢量线段集合该出发点的所有出边中,找到一条相对于当前参考方向具有最小旋转角的矢量线段,同样记录该线段,并将其方向作为新的参考方向、其终点作为新的出发点,再将该线段从集合中删除。重复这一操作,每次均利用新的出发点寻找一条相对于当前参考方向具有最小旋转角的矢量线段,直到所找到的矢量线段足以形成一个封闭的多边形为止。此过程得到的封闭多边形即为所需计算的外部临界多边形。
更优选的,步骤S5.2中所述的“最小旋转角”策略,其中涉及到计算一条矢量线段相对于一个给定参考方向的旋转角;该旋转角定义为:参考方向所在的矢量边绕其起点旋转到与该矢量线段方向一致(或平行)时所转过的角度;旋转角的取值范围为(-180,180],若参考方向是逆时针旋转后与矢量线段方向一致,则旋转角取正值;若是顺时针旋转后与矢量线段方向一致,则旋转角取负值。
优选的,步骤S6中通过基于“最小旋转角策略”的矢量线段筛选方法来尝试合成可能存在的内部临界多边形;筛选方法遍历当前矢量线段集合的所有端点,每次以一个端点作为出发点来进行一次内部临界多边形的合成尝试,并确定可能存在的内部临界多边形;由于第一条矢量线段无法应用最小旋转角策略来筛选,因此采用遍历方式,分别以当前矢量线段集合中该出发点的各条出边作为第一条矢量线段,进行多个轮次的矢量线段筛选和内部临界多边形合成尝试;具体合成内部临界多边形的步骤如下:
S6.1、在以某条出边作为第一条矢量线段进行一个轮次的操作时,首先以该线段的终点作为出发点、其矢量方向作为参考方向;
S6.2、基于最小旋转角策略在该出发点的所有出边中筛选出下一条矢量线段;
S6.3、以选中的矢量线段的终点作为新的出发点、其矢量方向作为新的参考方向,同样采用最小旋转角策略筛选出下一条矢量线段;后继矢量线段的筛选方法以此类推,在每一轮次的筛选过程中,已被选中的矢量线段不再参与后面的筛选,但是并不从矢量线段集合中删除;
S6.4、在一个轮次的矢量线段筛选过程中,如果选中的矢量线段能够形成一个封闭多边形,且该封闭多边形的点集方向正确,则该多边形即为多边形B相对于多边形A的一个内部临界多边形;此时,再从矢量线段集合中剔除掉这个封闭多边形所包含的所有矢量线段,从而完成一个轮次的内部临界多边形合成尝试;
S6.5、在以矢量线段集合的每一个端点作为出发点进行内部临界多边形的合成尝试过程中,所得到的所有有效的封闭多边形就构成多边形B相对于多边形A的内部临界多边形集合。
优选的,步骤S7退化点和退化线的具体情况如下:
①在矢量线段集合中,如果存在三条以上(含三条)的矢量线段相交于同一点,平移多边形B使其参考点与该交点重叠,判断此时的多边形B是否在多边形A外部;若是,则该点是一个退化为点的内部临界多边形(简称退化点)。
②在矢量线段集合中,如果存在两条以上(含两条)反向共线的矢量线段,且这些矢量线段与其它矢量线段存在两个以上(含两个)交点,则这在些交点中满足退化点条件的两个交点之间的线段是一个退化为线段的内部临界多边形(简称退化线)。
通过上述步骤计算得到的一个外部临界多边形以及可能存在一个或若干个内部临界多边形、退化点、退化线,共同构成了多边形B相对于多边形A的外靠接临界多边形(集合)。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明适用于形状任意的两个多边形之间的外靠接临界多边形的计算,在实际应用中不受零部件轮廓的限制,适用面广。
2、本发明在计算多边形之间的外靠接临界多边形时大量采用矢量运算,具有较低的时间复杂度,能够快速求得外靠接临界多边形,更加适用于与大规模搜索算法配合求解复杂的二维排样问题。
3、本发明采用矢量线段合成方法计算外靠接临界多边形,除了外部临界多边形外,还能够获得可能存在的内部临界多边形及退化点、退化线,计算更加准确和可靠。
附图说明
图1是本发明的计算方法流程图;
图2(a)-图2(c)是本发明的多边形的角顶点与另一多边形的矢量边的接触判断示意图;其中图2(a)是∠AOB的示意图,图2(b)是矢量边的示意图;图2(c)是判断矢量边是否接触的示意图;
图3(a)-图3(c)是本发明的初始矢量线段集合的获取示意图;其中图3(a)是多边形B的示意图,图3(b)多边形A的示意图;图3(c)是平移之后的示意图;
图4是本发明的矢量线段相交时的分割处理;
图5是本发明的矢量线段重合时的分割处理;其中图5(a)矢量线段方向相同、部分重合的情况;图5(b)矢量线段方向相同、包含重合;图5(c)矢量线段方向相反、部分重合;图5(d)矢量线段方向相反、包含重合;
图6是本发明的合成外部临界多边形的算法流程图;
图7是本发明的“最小旋转角”策略;
图8是本发明的合成内部临界多边形的算法流程图;
图9(a)-图9(d)是本发明的临界多边形退化为点或线的情形;其中图9(a)为多边形B的示意图,图9(b)为临界多边形退化为点的情形;图9(c)为多边形A的事宜图;图9(d)为临界多边形退化为线段的情形;
图10(a)-图10(c)是本发明的实施例基于矢量线段合成方法得到的完整的外靠接临界多边形集合;其中,图10(a)为多边形B的示意图,图10(b)为多边形A的示意图,图10(c)为矢量平移之后的示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
为了便于准确描述,对发明所述方法中涉及的若干数学概念与数学符号作说明如下:
①发明中所用的坐标空间均为平面坐标空间,并采用笛卡尔直角坐标系。为方便描述,假定水平向右方向为X轴正方向,水平向左方向为X轴负方向,垂直向上方向为Y轴正方向,垂直向下方向为Y轴负方向。
②以符号A、B分别指代平面坐标系中两个形状任意的多边形。为方便描述,发明书中所指的外靠接临界多边形均指多边形B相对于多边形A的外靠接临界多边形,即多边形B绕多边形A平移一周所形成的外靠接临界多边形。
③多边形A、B的表示方式既可采用多边形轮廓的顶点集合表示方式,也可以采用多边形轮廓的边集合表示方式;顶点集合或边集合的描述顺序既可采用逆时针方向顺序描述,也可以采用顺时针方向顺序描述。为方便描述,本发明以逆时针方向顶点集合的多边形表示方法为例描述有关算法。
如图1所示为本发明的计算方法流程,包括如下步骤:
(1)判断多边形的角顶点与另一多边形的矢量边的接触情况。如图2(a)中,判断角∠AOB的顶点O能否与矢量边接触:如图2(b)中,移动矢量边的起点E到角顶点O处(得其同向矢量线段),并作角顶点O的出边的反向延长线然后判断是否在∠AOB′的逆时针夹角区域内,如图2(c)所示。若是,判断为能接触,反之,则判断为不能接触。利用此判断方法可以获得两个多边形之间的角顶点与矢量边能接触的所有组合。
(2)选取多边形参考点。若求取多边形B相对多边形A的外靠接临界多边形,则选取多边形B轮廓上的任一点作为参考点。参考点一旦选定,则在外靠接临界多边形的计算过程中不可更改。在实际应用中,为方便计算,通常选取多边形的某个处于极限位置的顶点作为参考点。
(3)计算获取初始矢量线段集合。求解过程为:针对步骤(1)获得的多边形B与多边形A的各个角顶点与各条矢量边的能接触组合,移动多边形B使其矢量边沿着可接触的多边形A的角顶点移动,以及移动多边形B使其角顶点沿可接触的A的矢量边移动,此过程中参考点移动得到的多条线段构成初试的矢量线段集合。整个过程中,多边形A固定,多边形B移动。如图3(a)、图3(b)所示为初始矢量线段集合的获取,其中多边形B为逆时针方向的正方形,多边形A为逆时针方向、带有凹糟的不规则多边形,参考点选取的是多边形B的左下角顶点。如图3(c)图中点画线1是多边形B的角顶点在多边形A的矢量边上移动产生的矢量线段,点画线2为多边形B的矢量边在多边形A的角顶点上移动产生的矢量线段。为了便于观察,图中有重合的矢量线段做了微平移处理。
(4)分割矢量线段。在初始矢量线段集合中,若矢量线段之间存在相交或重合,则用矢量线段的交点或位于重合部分的端点分割相关矢量线段,得到分割后的矢量线段集合。包括两种可能情况:
①若矢量线段之间存在相交(两线段重合或部分重合,以及一线段的端点与另一线段的端点重合不在此范畴内),则计算出它们的交点,并用交点分割该交点所在的矢量线段,每个交点都将其所在的矢量线段分割成两条矢量线段。图4举例说明了矢量线段相交时的分割方法。图中矢量线段与相交于O点,故用O点分别切割这两条矢量线段可得到4条矢量线段,分别为和
②若某些矢量线段出现重合(长度相同的矢量线段完全重合的情形不在此范畴内),则用矢量线段位于重合部分的端点来分割矢量线段,分割方法与矢量线段的方向以及重合形式有关。图5(a)-图5(d)举例说明了矢量线段重合时的分割方法。图5(a)为两条同向且为部分重合的矢量线段的分割:同向矢量线段与部分重合,则位于重合部分的端点C、B将这两条矢量线段切割为三条矢量线段:与图5(b)为两条同向且为包含重合的矢量线段的分割:同向矢量线段与重合且完全包含则位于重合部分的端点A、B将这两条矢量线段切割为三条矢量线段:与图5(c)为两条反向且为部分重合的矢量线段的分割:反向矢量线段与部分重合,则位于重合部分的端点B、D将这两条矢量线段切割为四条矢量线段:与图5(d)为两条反向且为包含重合的矢量线段的分割:反向矢量线段与重合且完全包含则位于重合部分的端点A、B将这两条矢量线段切割为四条矢量线段:与
(5)合成外部临界多边形。如图6为计算外部多边形的算法流程图。每次通过选取合适的出发点和参考方向,并以“最小旋转角”策略从矢量线段集合中筛选出一条矢量线段来合成一个封闭多边形,该多边形即为外部临界多边形。其中,图7所示为利用最小旋转角策略从出发点的所有出边中筛选出一条用于合成外部临界多边形的矢量线段的示例。假定图中为上一次筛选得到的矢量线段,其终点A(作为新的出发点)的出边有分别计算A的各条出边相对于矢量线段(即当前参考方向)的旋转角。为直观展示旋转角,作为的延长线则相对于的旋转角分别为∠A′AB和∠A′AC。由于∠A′AB为逆时针旋转得到,其为正值;而∠A′AC为顺时针旋转得到,故为负值。易知,的旋转角小于的旋转角。因此,根据“最小旋转角”策略,选择出边作为下一条矢量线段。
(6)合成可能存在的内部临界多边形。如图8为计算内部临界多边形的算法流程图。通过遍历矢量线段的端点集合,以每个端点作为初始的出发点(起点),采用“最小旋转角”策略,经过多个轮次来筛选矢量线段和尝试合成内部临界多边形。在任一轮次的搜索过程中,如果无法构成封闭多边形,则说明该轮次的起点(某个矢量线段端点)不是内部临界多边形的顶点,则放弃该端点,选取下一个端点作为起点,重新尝试合成内部临界多边形;如果能够获得封闭多边形,则判断该多边形的点集方向是否正确,如正确则为有效的内部临界多边形,将其加入临界多边形集合,否则,不是有效内部临界多边形,丢弃该封闭多边形。特别地,对合成得到的每个封闭多边形,算法都需要通过判断其方向是否正确来确定是否属于有效的内部临界多边形。判断方法为:若多边形A、B的点集采用逆时针表示,则有效的内部临界多边形必须为顺时针多边形;若A、B的点集采用顺时针表示,则有效的内部临界多边形必须为逆时针多边形。另外还需说明的是,并非任意两个多边形之间的外靠接临界多边形都一定会包含内部临界多边形,如果利用矢量线段合成方法无法获得封闭的内部多边形,说明这两个多边形之间的外靠接临界多边形只有外部临界多边形,而没有内部临界多边形。
(7)计算可能存在的退化点和退化线。
在一些特殊情况下,内部临界多边形可能会出现退化情形。包括两种:内部临界多边形退化为点或退化为线段。退化点与退化线均属于内部临界多边形的范畴,其确定方法分述如下:
①在矢量线段集合中,如果存在三条以上(含三条)的矢量线段相交于同一点,平移多边形B使其参考点与该交点重叠,判断此时的多边形B是否在多边形A外部。若是,则该点是一个退化为点的内部临界多边形(简称退化点)。图9(a)、图9(b)为内部临界多边形退化为点的示例,多边形B为一梯形,多边形A为带凹糟的长方形,参考点选取为多边形B的左下角顶点,利用多边形A、B计算得到的部分矢量线段(图中所示的6条带方向箭头的线段)相交于一点(O),平移多边形B使得其参考点(最下端点)与O点重合后,因多边形B在多边形A外部,故O点为退化点。
②在矢量线段集合中,如果存在两条以上(含两条)反向共线的矢量线段,且这些矢量线段与其它矢量线段存在两个以上(含两个)交点,则这在些交点中满足退化点条件的两个交点之间的线段是一个退化为线段的内部临界多边形(简称退化线)。图9(c)、图9(d)为内部临界多边形退化为线的示例,多边形B为一正方形,多边形A为带凹糟的长方形,参考点选取为多边形B的左下角顶点,用多边形A、B计算得到的部分矢量线段有:其中,多条矢量线段之间存在反向共线情形,但仅有与这组反向共线的线段与其它矢量线段(此处为与)存在两个以上的交点(其两个交点为A、B),且A点和B点符合退化点要求,故AB为一条退化线。
最终,通过上述步骤计算得到的外部临界多边形、内部临界多边形、退化线、退化点共同构成两个多边形之间的临界多边形集合。如图10(a)-图10(c)所示,多边形B采用的是逆时针方向的正方形,多边形A采用的是逆时针方向中间有凹糟的长方形,参考点选取的是多边形B的左下角顶点。图10(c)中点画线段的集合即为通过本发明所述方法计算得到的多边形B相对于多边形A的外靠接临界多边形集合。其中,多边形ABCDH为外部临界多边形,多边形EFG为内部临界多边形,线段DE为退化线。当多边形B的参考点位于外靠接临界多边形的任一点上时,多边形B与多边形A之间均为既靠接但不重叠的接触。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于,对于给定的任意形状的两个多边形A、B,计算多边形B相对多边形A的外靠接临界多边形,计算方法具体包括如下步骤:
S1、判断一个多边形B的各个角顶点与另一个多边形A各个矢量边的接触情况,并且判断一个多边形B的各个矢量边与另一个多边形A的各个角顶点的接触情况,生成两个多边形的各个角顶点与各条矢量边之间能接触的所有“角顶点-矢量边”组合;
S2、多边形的参考点选取,多边形B轮廓边上的任意一个点,包括其角顶点和矢量边上的点,均可选为参考点;
S3、计算产生初始的矢量线段集合,利用步骤S1得到的能接触的“角顶点-矢量边”组合以及步骤S2选取的参考点,让多边形B的各个角顶点在A的能接触的矢量边上移动,并且让多边形B的各个矢量边在A的能接触的角顶点上移动,以上参考点的移动将产生矢量线段;产生的所有矢量线段构成初始的矢量线段集合,两个多边形之间的外靠接临界多边形必定包含在上述方式产生的矢量线段之中;
S4、矢量线段的分割处理,此步骤对在步骤S3中计算产生初始的矢量线段进行分割处理;通过此步骤的分割处理,可将初始的矢量线段集合处理成后面合成外靠接临界多边形所需的矢量线段集合;
S5、通过筛选矢量线段合成外部临界多边形,具体步骤如下:
S5.1、在筛选矢量线段合成外部临界多边形前,选择一个初始出发点和一个初始的参考方向;
S5.2、采用“最小旋转角”策略逐步筛选矢量线段来合成外部临界多边形;
S6、通过筛选矢量线段合成可能存在的内部临界多边形;
S7、计算内部临界多边形可能存在的退化情形,包括退化点和退化线两种情形。
2.根据权利要求1所述的一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于步骤S1中判定一个多边形的各个角顶点与另一个多边形各个矢量边是否接触的方法为:
若角顶点的出边相对于其入边逆时针转过的角度大于180度,则判断角顶点和矢量边不可能接触;若不大于180度,且该矢量边位于角顶点的入边与出边反向延长线所构成的逆时针方向夹角区域内,则判断为两者能接触;通过此步骤,可计算获得两个多边形的各个角顶点与各条矢量边之间能接触的所有“角顶点-矢量边”组合。
3.根据权利要求1所述的一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于步骤S3中产生初始的矢量线段集合的获取包括两个部分:
(1)、针对多边形B的角顶点与多边形A的矢量边的每个能接触“角顶点-矢量边”组合,先平移多边形B使其在组合中的角顶点与A中对应矢量边的起点重合,然后沿矢量边方向平移多边形B,直到该角顶点到达该矢量边的终点位置,且多边形B在平移过程中始终保持其角顶点与该矢量边相接触,此过程中多边形B的参考点的移动将产生一条矢量线段,通过这一计算,可产生一组基于多边形B角顶点和多边形A矢量边的能接触“角顶点-矢量边”组合的矢量线段;
(2)、针对多边形A的角顶点与多边形B的矢量边的每个能接触“角顶点-矢量边”组合,先平移多边形B使其在该组合中的矢量边的起点与A中对应的角顶点重合,然后沿该矢量边的反方向平移多边形B,直到该矢量边的终点到达角顶点位置,且多边形B在平移过程中始终保持其矢量边与该角顶点相接触,此过程中多边形B的参考点的移动也将产生一条矢量线段,通过这一计算,可产生一组基于多边形A角顶点和多边形B矢量边的能接触“角顶点-矢量边”组合的矢量线段;
上述两部分计算得到的两组矢量线段构成本算法所需的初始的矢量线段集合。
4.根据权利要求1所述的一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于步骤S4的矢量线段分割处理包括两种情形:
①若矢量线段之间存在相交,其中两线段重合或部分重合,以及一线段的端点与另一线段的端点重合不在此范畴内,则计算出它们的交点,并用交点分割该交点所在的矢量线段,每个交点都将其所在的矢量线段分割成两条矢量线段;
②若某些矢量线段出现重合,其中长度相同的矢量线段完全重合的情形不在此范畴内,则用矢量线段位于重合部分的端点来分割矢量线段;
上述两种情形的分割处理仅针对初始矢量线段集合中满足所述两种情形条件的矢量线段,分割得到的新矢量线段将加入矢量线段集合,而被分割的矢量线段则从集合中剔除;那些无需分割的矢量线段仍保留在集合中。
5.根据权利要求1所述的一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于步骤S5.1所述的初始出发点需在步骤S4得到的所有矢量线段的端点中处于极限位置的端点中选取,其中端点有最下端点、最上端点、最右端点和最左端点四类端点,并根据选择的初始出发点的情况选择一个对应的初始参考方向:X轴正方向与最下端点配对,X轴负方向与最上端点配对,Y轴正方向与最右端点配对,Y轴负方向与最左端点配对。
6.根据权利要求1所述的一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于步骤S5.2采用“最小旋转角”策略逐步筛选矢量线段来合成外部临界多边形的具体步骤如下:
S5.2.1、对于选定的初始的出发点与参考方向,把矢量线段集合中所有以该出发点为起点的矢量线段简称为出发点的出边,在出发点的出边中找到一条相对于参考方向具有最小旋转角的矢量线段,记录该矢量线段,并将其矢量方向作为新的参考方向、其终点作为新的出发点,再将该线段从矢量线段集合中删除,以保证在后面的矢量线段筛选中不再考虑该矢量线段;
S5.2.2、针对新的出发点和参考方向,在当前矢量线段集合该出发点的所有出边中,找到一条相对于当前参考方向具有最小旋转角的矢量线段,同样记录该线段,并将其方向作为新的参考方向、其终点作为新的出发点,再将该线段从集合中删除,重复这一操作,每次均利用新的出发点寻找一条相对于当前参考方向具有最小旋转角的矢量线段,直到所找到的矢量线段足以形成一个封闭的多边形为止;此过程得到的封闭多边形即为所需计算的外部临界多边形。
7.根据权利要求1或6所述的一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于步骤S5.2中所述的“最小旋转角”策略,其中涉及到计算一条矢量线段相对于一个给定参考方向的旋转角;该旋转角定义为:参考方向所在的矢量边绕其起点旋转到与该矢量线段方向一致或平行时所转过的角度;旋转角的取值范围为(-180,180],若旋转的方向与多边形矢量线段方向一致,则旋转角取正值;若相反,则旋转角取负值。
8.根据权利要求1所述的一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于步骤S6中通过筛选矢量线段合成可能存在的内部临界多边形的方法为:
筛选方法遍历当前矢量线段集合的所有端点,每次以一个端点作为出发点来进行一次内部临界多边形的合成尝试,并确定可能存在的内部临界多边形;由于第一条矢量线段无法应用最小旋转角策略来筛选,因此采用遍历方式,分别以当前矢量线段集合中该出发点的各条出边作为第一条矢量线段,进行多个轮次的矢量线段筛选和内部临界多边形合成尝试;具体合成内部临界多边形的步骤如下:
S6.1、在以某条出边作为第一条矢量线段进行一个轮次的内部临界多边形合成尝试操作时,首先以该线段的终点作为出发点、其矢量方向作为参考方向;
S6.2、基于最小旋转角策略在该出发点的所有出边中筛选出下一条矢量线段;
S6.3、以选中的矢量线段的终点作为新的出发点、其矢量方向作为新的参考方向,同样采用最小旋转角策略筛选出下一条矢量线段;后继矢量线段的筛选方法以此类推,在每一轮次的筛选过程中,已被选中的矢量线段不再参与此轮次的筛选,但是并不从矢量线段集合中删除;
S6.4、在一个轮次的矢量线段筛选过程中,如果选中的矢量线段能够形成一个封闭多边形,且该封闭多边形的点集方向正确,则该多边形即为多边形B相对于多边形A的一个内部临界多边形;此时,再从矢量线段集合中剔除掉这个封闭多边形所包含的所有矢量线段,从而完成一个轮次的内部临界多边形合成尝试;
S6.5、在以矢量线段集合的每一个端点作为出发点进行临界多边形的合成尝试过程中,所得到的所有有效的封闭多边形就构成多边形B相对于多边形A的内部临界多边形集合。
9.根据权利要求1所述的一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法,其特征在于S7退化点和退化线的具体情况如下:
①在矢量线段集合中,如果存在三条以上的矢量线段相交于同一点,其中包括三条,平移多边形B使其参考点与该交点重叠,判断此时的多边形B是否在多边形A外部;若是,则该点是一个退化为点的内部临界多边形,简称退化点;
②在矢量线段集合中,如果存在两条以上反向共线的矢量线段,其中包括两条,且这些矢量线段与其它矢量线段存在两个以上交点,包含两个交点,则在这些交点中满足退化点条件的两个交点之间的线段是一个退化为线段的内部临界多边形,简称退化线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710237156.5A CN107067106A (zh) | 2017-04-12 | 2017-04-12 | 一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710237156.5A CN107067106A (zh) | 2017-04-12 | 2017-04-12 | 一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107067106A true CN107067106A (zh) | 2017-08-18 |
Family
ID=59602260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710237156.5A Pending CN107067106A (zh) | 2017-04-12 | 2017-04-12 | 一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107067106A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108269283A (zh) * | 2017-12-26 | 2018-07-10 | 武汉长江通信智联技术有限公司 | 一种判断移动点进出多边形区域的实现方法 |
CN113177668A (zh) * | 2021-05-24 | 2021-07-27 | 浙江热刺激光技术有限公司 | 二维板材的排样方法 |
CN113954867A (zh) * | 2021-09-29 | 2022-01-21 | 广州文远知行科技有限公司 | 一种对象至碰时间快速计算方法、装置、设备及存储介质 |
-
2017
- 2017-04-12 CN CN201710237156.5A patent/CN107067106A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108269283A (zh) * | 2017-12-26 | 2018-07-10 | 武汉长江通信智联技术有限公司 | 一种判断移动点进出多边形区域的实现方法 |
CN113177668A (zh) * | 2021-05-24 | 2021-07-27 | 浙江热刺激光技术有限公司 | 二维板材的排样方法 |
CN113177668B (zh) * | 2021-05-24 | 2022-05-24 | 浙江热刺激光技术有限公司 | 二维板材的排样方法 |
CN113954867A (zh) * | 2021-09-29 | 2022-01-21 | 广州文远知行科技有限公司 | 一种对象至碰时间快速计算方法、装置、设备及存储介质 |
CN113954867B (zh) * | 2021-09-29 | 2023-10-20 | 广州文远知行科技有限公司 | 一种对象至碰时间快速计算方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104331555B (zh) | 一种针对带有边界的非封闭stl模型的切片处理方法 | |
CN102306396B (zh) | 一种三维实体模型表面有限元网格自动生成方法 | |
CN107067106A (zh) | 一种适用于形状任意的两个多边形之间的外靠接临界多边形的计算方法 | |
CN106985395B (zh) | 基于特征的增材制造方法及装置 | |
CN105225273B (zh) | 基于空间断层多边形建立断层模型的方法及装置 | |
CN109671110B (zh) | 一种局部几何结构约束的城区宽基线影像特征点匹配方法 | |
CN104238456B (zh) | 一种非球头刀铣削加工自由曲面的方法 | |
CN106874580A (zh) | 一种基于点云数据的弯管模型重建方法 | |
CN107146249A (zh) | 一种适用于任意两多边形之间的内靠接临界多边形的计算方法 | |
CN106096139B (zh) | 一种利用回弹补偿的冲压件回弹控制方法 | |
CN110363854A (zh) | 曲面模板分割方法、装置、计算机设备和存储介质 | |
CN107037738B (zh) | 数控加工几何仿真中基于stl模型的材料去除方法 | |
CN116610927B (zh) | 基于fpga的风机齿轮箱轴承故障诊断方法及诊断模块 | |
CN109408991A (zh) | 一种基于fanuc picture人机界面的模型参数可视化加工方法 | |
CN104525668A (zh) | 一种多点成形加工曲面的冲头调形方法 | |
CN112489166A (zh) | 汽车板激光切割自动排版制图方法及系统 | |
CN108225243A (zh) | 一种快速获取异形曲面结构厚度分布的方法 | |
CN105374024B (zh) | 高分辨率卫星影像水上桥梁提取的方法 | |
CN102678879A (zh) | 一种非圆齿轮的齿廓数值获取方法 | |
CN110033390A (zh) | 露天矿山生产爆堆自动创建方法 | |
JP2007193552A (ja) | 面モデルの作成装置と作成方法 | |
Lu et al. | Volumetric decomposition via medial object and pen-based user interface for hexahedral mesh generation | |
CN106874919A (zh) | 一种用于确定船体外板角点的方法与装置 | |
CN106295060B (zh) | 一种带下陷框肋零件弯边变系数回弹精确补偿方法 | |
Cai et al. | Robust One-to-One Sweeping with Harmonic S-T Mappings and Cages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170818 |
|
RJ01 | Rejection of invention patent application after publication |