Skip to content

Merge two (adjacent) simple polygons into another simple polygon.

License

Notifications You must be signed in to change notification settings

juliuste/merge-simple-polygons

Repository files navigation

merge-simple-polygons

Merge two (adjacent) simple polygons into another simple polygon.

npm version License Contact me

Installation

npm install merge-simple-polygons

Usage

This package is ESM only.

The module's default export is a function that takes two arrays of vertex names, each spanning a planar polygon and returns:

  • false if the given polygons share no vertices
  • null if there would be more than one resulting simple polygon (if the two given polygons share either exactly one vertex, which would result in two polygons or multiple egdes that are not connected, which would result in a polygon with a "hole")
  • a list of vertex IDs forming the merged polygon
import mergePolygons from 'merge-simple-polygons'

const polygonA = ['a', 'b', 'c', 'd', 'e']
const polygonB = ['e', 'a', 'g', 'h', 'i', 'd']
const polygonC = mergePolygons(polygonA, polygonB)
console.log(polygonC) // ['a', 'b', 'c', 'd', 'i', 'h', 'g']

const polygonD = ['a', 'b', 'c']
const polygonE = ['d', 'e', 'f']
console.log(mergePolygons(polygonD, polygonE)) // false

const polygonF = ['a', 'b', 'c', 'd', 'e']
const polygonG = ['a', 'b', 'f', 'e', 'd', 'g']
console.log(mergePolygons(polygonF, polygonG)) // null

Contributing

If you found a bug or want to propose a feature, feel free to visit the issues page.

About

Merge two (adjacent) simple polygons into another simple polygon.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published