union2_closed_polygons_xldunion2_closed_polygons_xldUnion2ClosedPolygonsXldUnion2ClosedPolygonsXldunion2_closed_polygons_xld (算子)

名称

union2_closed_polygons_xldunion2_closed_polygons_xldUnion2ClosedPolygonsXldUnion2ClosedPolygonsXldunion2_closed_polygons_xld — 计算闭合多边形的并集。

签名

union2_closed_polygons_xld(Polygons1, Polygons2 : PolygonsUnion : : )

Herror union2_closed_polygons_xld(const Hobject Polygons1, const Hobject Polygons2, Hobject* PolygonsUnion)

Herror T_union2_closed_polygons_xld(const Hobject Polygons1, const Hobject Polygons2, Hobject* PolygonsUnion)

void Union2ClosedPolygonsXld(const HObject& Polygons1, const HObject& Polygons2, HObject* PolygonsUnion)

HXLDPoly HXLDPoly::Union2ClosedPolygonsXld(const HXLDPoly& Polygons2) const

static void HOperatorSet.Union2ClosedPolygonsXld(HObject polygons1, HObject polygons2, out HObject polygonsUnion)

HXLDPoly HXLDPoly.Union2ClosedPolygonsXld(HXLDPoly polygons2)

def union2_closed_polygons_xld(polygons_1: HObject, polygons_2: HObject) -> HObject

描述

算子 union2_closed_polygons_xldunion2_closed_polygons_xldUnion2ClosedPolygonsXldUnion2ClosedPolygonsXldUnion2ClosedPolygonsXldunion2_closed_polygons_xld calculates the union of the regions enclosed by the polygons Polygons1Polygons1Polygons1Polygons1polygons1polygons_1 and Polygons2Polygons2Polygons2Polygons2polygons2polygons_2. The boundaries of this union are returned in PolygonsUnionPolygonsUnionPolygonsUnionPolygonsUnionpolygonsUnionpolygons_union

If the individual input polygons are not closed, they are closed automatically by connecting their start and end points.

Internally, first, the regions enclosed by each set of polygons (Polygons1Polygons1Polygons1Polygons1polygons1polygons_1 and Polygons2Polygons2Polygons2Polygons2polygons2polygons_2, respectively) are determined as described below. Then, the union of these two regions is calculated.

In the following, the two sets of input polygons are referred to as boundary sets. A boundary set consists of an arbitrary number of boundaries (the individual polygons of Polygons1Polygons1Polygons1Polygons1polygons1polygons_1 and Polygons2Polygons2Polygons2Polygons2polygons2polygons_2, respectively). Each boundary may be convex or concave and self-intersecting. Internal holes may be formed by the nesting of boundaries.

The region enclosed by such a boundary set is defined by the so-called Even-Odd-Rule. Thus, it consists of all points with the following property: The line constructed by connecting the point with another reference point that lies outside of the region has an odd number of intersections with boundaries.

More descriptive, this means that a boundary defines a hole in the region enclosed by another boundary if it lies completely inside that region. Similarly, the overlapping area of two separate boundaries of one boundary set is taken as a "hole", i.e., it does not belong to the region enclosed by the two boundaries. Note that the region enclosed by a boundary does not depend on the orientation of the boundary.

A self-intersecting boundary may be split at the intersection point or it is reordered such that it touches itself at the intersection point. The resulting boundaries are treated as separate boundaries.

注意

The resulting polygons PolygonsUnionPolygonsUnionPolygonsUnionPolygonsUnionpolygonsUnionpolygons_union contain no references to the XLD contours that are possibly referenced by Polygons1Polygons1Polygons1Polygons1polygons1polygons_1 and Polygons2Polygons2Polygons2Polygons2polygons2polygons_2. Hence, operators that access the contours associated with a polygon, e.g., split_contours_xldsplit_contours_xldSplitContoursXldSplitContoursXldSplitContoursXldsplit_contours_xld will not work correctly.

执行信息

参数

Polygons1Polygons1Polygons1Polygons1polygons1polygons_1 (输入对象)  xld_poly(-array) objectHXLDPolyHObjectHXLDPolyHobject

Polygons enclosing the first region.

Polygons2Polygons2Polygons2Polygons2polygons2polygons_2 (输入对象)  xld_poly(-array) objectHXLDPolyHObjectHXLDPolyHobject

Polygons enclosing the second region.

PolygonsUnionPolygonsUnionPolygonsUnionPolygonsUnionpolygonsUnionpolygons_union (输出对象)  xld_poly(-array) objectHXLDPolyHObjectHXLDPolyHobject *

Polygons enclosing the union.

结果

union2_closed_polygons_xldunion2_closed_polygons_xldUnion2ClosedPolygonsXldUnion2ClosedPolygonsXldUnion2ClosedPolygonsXldunion2_closed_polygons_xld 在所有参数正确时返回 2 ( H_MSG_TRUE )。如有必要,则抛出异常。

可能的前趋

gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXldgen_polygons_xld

替代

union2union2Union2Union2Union2union2

另见

difference_closed_polygons_xlddifference_closed_polygons_xldDifferenceClosedPolygonsXldDifferenceClosedPolygonsXldDifferenceClosedPolygonsXlddifference_closed_polygons_xld, symm_difference_closed_polygons_xldsymm_difference_closed_polygons_xldSymmDifferenceClosedPolygonsXldSymmDifferenceClosedPolygonsXldSymmDifferenceClosedPolygonsXldsymm_difference_closed_polygons_xld, intersection_closed_polygons_xldintersection_closed_polygons_xldIntersectionClosedPolygonsXldIntersectionClosedPolygonsXldIntersectionClosedPolygonsXldintersection_closed_polygons_xld, union2_closed_contours_xldunion2_closed_contours_xldUnion2ClosedContoursXldUnion2ClosedContoursXldUnion2ClosedContoursXldunion2_closed_contours_xld

模块

基础