Skip to main content
add simple example
Source Link
Beefster
  • 10k
  • 21
  • 13

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

Example polygon unions

Example inputs/outputs

2 Squares

 [(0, 0), (0, 2), (2, 2), (2, 0)] | [(1, 1), (1, 3), (3, 3), (3, 1)] ==> [(0, 0), (0, 2), (1, 2), (1, 3), (3, 3), (3, 1), (2, 1), (2, 0)] 

... more to come

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • Polygons may be concave
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap in at least two places exclusively via edge-edge crossings rather than vertex-edge intersections, vertex-vertex intersections, or flush edge-edge overlaps.
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

Example polygon unions

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • Polygons may be concave
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap in at least two places exclusively via edge-edge crossings rather than vertex-edge intersections, vertex-vertex intersections, or flush edge-edge overlaps.
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

Example polygon unions

Example inputs/outputs

2 Squares

 [(0, 0), (0, 2), (2, 2), (2, 0)] | [(1, 1), (1, 3), (3, 3), (3, 1)] ==> [(0, 0), (0, 2), (1, 2), (1, 3), (3, 3), (3, 1), (2, 1), (2, 0)] 

... more to come

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • Polygons may be concave
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap in at least two places exclusively via edge-edge crossings rather than vertex-edge intersections, vertex-vertex intersections, or flush edge-edge overlaps.
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

try to explain the anti-edgecase rule better
Source Link
Beefster
  • 10k
  • 21
  • 13

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

Example polygon unions

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • Polygons may be concave
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap in at least two places exclusively via intersections where there is exactly one point of intersection (ratheredge-edge crossings rather than infinitevertex-edge intersections, as there would be if there was a common line segment in both polygons) and that is not within 0.01 units along each axis of any vertex of either polygon-vertex intersections, or flush edge-edge overlaps.
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

Example polygon unions

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • Polygons may be concave
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap in at least two places exclusively via intersections where there is exactly one point of intersection (rather than infinite, as there would be if there was a common line segment in both polygons) and that is not within 0.01 units along each axis of any vertex of either polygon.
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

Example polygon unions

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • Polygons may be concave
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap in at least two places exclusively via edge-edge crossings rather than vertex-edge intersections, vertex-vertex intersections, or flush edge-edge overlaps.
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

examples
Source Link
Beefster
  • 10k
  • 21
  • 13

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

(TODO: visuals)Example polygon unions

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • Polygons may be concave
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap atin at least 2 pointstwo places exclusively via intersections where there is exactly one point of intersection (rather than infinite, as there would be if there was a common line segment in both polygons) and that is not within 0.01 units along each axis of any vertex of either polygon.
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

(TODO: visuals)

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap at at least 2 points
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

Union of Two Polygons

Given two intersecting polygons as input, output a third polygon that is the union of the two input polygons, that is to say, the perimeter that encloses all points present in at least one of the two input polygons.

Example polygon unions

Notes and Rules

  • Input will be two lists of at least 3 2d points each, taken in any convenient format.
  • Output should be a list of 2d points, in any convenient format.
  • It does not matter which point you list first.
  • It does not matter whether you output in clockwise or counterclockwise order.
  • Polygons may be concave
  • You may assume that both polygons are not self-intersecting
  • You may assume that the polygons overlap in at least two places exclusively via intersections where there is exactly one point of intersection (rather than infinite, as there would be if there was a common line segment in both polygons) and that is not within 0.01 units along each axis of any vertex of either polygon.
  • You may assume that the polygons do not overlap in such a way that the union would have at least one hole in it.
  • You must be accurate to at least 0.01 for all polygons between -100 and 100 units along each axis.
  • Standard rules apply. Shortest code wins.

Source Link
Beefster
  • 10k
  • 21
  • 13
Loading