2.3.111 • Published 4 months ago

@thi.ng/geom-voronoi v2.3.111

Weekly downloads
125
License
Apache-2.0
Repository
github
Last release
4 months ago

geom-voronoi

npm version npm downloads Twitter Follow

This project is part of the @thi.ng/umbrella monorepo.

About

Fast, incremental 2D Delaunay & Voronoi mesh implementation, based on the @thi.ng/quad-edge data structure after Guibas & Stolfi and partially ported from C++ versions by Dani Lischinski, Paul Heckbert et al:

References:

Construction speed: 20k random points (poisson disc samples, even distribution) in ~850ms (Chrome 72, MBP 2016)

Status

STABLE - used in production

Search or submit any issues for this package

Related packages

Installation

yarn add @thi.ng/geom-voronoi

ES module import:

<script type="module" src="https://cdn.skypack.dev/@thi.ng/geom-voronoi"></script>

Skypack documentation

For Node.js REPL:

# with flag only for < v16
node --experimental-repl-await

> const geomVoronoi = await import("@thi.ng/geom-voronoi");

Package sizes (gzipped, pre-treeshake): ESM: 1.41 KB

Dependencies

Usage examples

Several demos in this repo's /examples directory are using this package.

A selection:

ScreenshotDescriptionLive demoSource
Poisson-disk shape-aware sampling, Voronoi & Minimum Spanning Tree visualizationDemoSource
Animated Voronoi diagram, cubic splines & SVG downloadDemoSource

API

Generated API docs

example screenshot

import * as g from "@thi.ng/geom";
import { DVMesh } from "@thi.ng/geom-voronoi";
import { repeatedly } from "@thi.ng/transducers";
import { randNorm2 } from "@thi.ng/vectors";

const pts = [...repeatedly(() => randNorm2([], Math.random() * 250), 1000)];

const mesh = new DVMesh(pts);

// raw polygons of primary or dual mesh
mesh.delaunay()
mesh.voronoi()

// ...or clipped & filtered polygons within convex polygon boundary
const bounds = g.vertices(g.center(g.rect(500)));
// [ [ -250, -250 ], [ 250, -250 ], [ 250, 250 ], [ -250, 250 ] ]

const cells = mesh.voronoi(bounds);

document.body.innerHtml = g.asSvg(
    g.svgDoc({ fill: "none", "stroke-width": 0.25 },
        g.group({ stroke: "blue" }, mesh.delaunay(bounds).map((p) => g.polygon(p))),
        g.group({ stroke: "red" }, mesh.voronoi(bounds).map((p) => g.polygon(p)))
    )
);

Authors

Karsten Schmidt

If this project contributes to an academic publication, please cite it as:

@misc{thing-geom-voronoi,
  title = "@thi.ng/geom-voronoi",
  author = "Karsten Schmidt",
  note = "https://thi.ng/geom-voronoi",
  year = 2016
}

License

© 2016 - 2021 Karsten Schmidt // Apache Software License 2.0

2.3.111

4 months ago

2.3.110

5 months ago

2.3.109

5 months ago

2.3.108

5 months ago

2.3.107

5 months ago

2.3.106

5 months ago

2.3.105

6 months ago

2.3.103

6 months ago

2.3.104

6 months ago

2.3.102

6 months ago

2.3.101

6 months ago

2.3.100

6 months ago

2.3.99

7 months ago

2.3.98

7 months ago

2.3.97

8 months ago

2.3.96

8 months ago

2.3.95

8 months ago

2.3.94

8 months ago

2.3.93

8 months ago

2.3.92

9 months ago

2.3.79

12 months ago

2.3.78

12 months ago

2.3.75

1 year ago

2.3.77

1 year ago

2.3.76

1 year ago

2.3.80

12 months ago

2.3.89

10 months ago

2.3.86

11 months ago

2.3.85

11 months ago

2.3.88

10 months ago

2.3.87

10 months ago

2.3.82

11 months ago

2.3.81

12 months ago

2.3.84

11 months ago

2.3.83

11 months ago

2.3.91

9 months ago

2.3.90

9 months ago

2.3.74

1 year ago

2.3.73

1 year ago

2.3.72

1 year ago

2.3.71

1 year ago

2.3.70

1 year ago

2.3.69

1 year ago

2.3.68

1 year ago

2.3.67

1 year ago

2.3.66

1 year ago

2.3.65

1 year ago

2.3.64

1 year ago

2.3.63

1 year ago

2.3.62

1 year ago

2.3.61

1 year ago

2.3.60

1 year ago

2.3.59

1 year ago

2.3.58

1 year ago

2.3.57

1 year ago

2.3.56

1 year ago

2.3.53

1 year ago

2.3.55

1 year ago

2.3.54

1 year ago

2.3.52

1 year ago

2.3.51

1 year ago

2.3.50

1 year ago

2.3.49

1 year ago

2.3.48

1 year ago

2.3.46

1 year ago

2.3.45

1 year ago

2.3.47

1 year ago

2.3.43

1 year ago

2.3.42

1 year ago

2.3.41

2 years ago

2.3.40

2 years ago

2.3.39

2 years ago

2.3.38

2 years ago

2.3.37

2 years ago

2.3.35

2 years ago

2.3.36

2 years ago

2.3.34

2 years ago

2.3.33

2 years ago

2.3.28

2 years ago

2.3.27

2 years ago

2.3.24

2 years ago

2.3.23

2 years ago

2.3.26

2 years ago

2.3.25

2 years ago

2.3.20

2 years ago

2.3.22

2 years ago

2.3.21

2 years ago

2.3.31

2 years ago

2.3.30

2 years ago

2.3.32

2 years ago

2.3.4

2 years ago

2.3.5

2 years ago

2.3.8

2 years ago

2.3.7

2 years ago

2.3.9

2 years ago

2.3.17

2 years ago

2.3.16

2 years ago

2.3.19

2 years ago

2.3.18

2 years ago

2.3.13

2 years ago

2.3.12

2 years ago

2.3.15

2 years ago

2.3.14

2 years ago

2.3.11

2 years ago

2.3.10

2 years ago

2.3.2

2 years ago

2.3.3

2 years ago

2.3.1

2 years ago

2.2.57

2 years ago

2.3.0

2 years ago

2.2.55

2 years ago

2.2.56

2 years ago

2.2.53

2 years ago

2.2.54

2 years ago

2.2.51

2 years ago

2.2.52

2 years ago

2.2.50

2 years ago

2.2.48

2 years ago

2.2.49

2 years ago

2.2.47

2 years ago

2.2.46

2 years ago

2.2.44

2 years ago

2.2.39

3 years ago

2.2.38

3 years ago

2.2.42

3 years ago

2.2.43

3 years ago

2.2.40

3 years ago

2.2.41

3 years ago

2.2.28

3 years ago

2.2.29

3 years ago

2.2.37

3 years ago

2.2.35

3 years ago

2.2.36

3 years ago

2.2.33

3 years ago

2.2.34

3 years ago

2.2.31

3 years ago

2.2.32

3 years ago

2.2.30

3 years ago

2.2.26

3 years ago

2.2.27

3 years ago

2.2.25

3 years ago

2.2.17

3 years ago

2.2.18

3 years ago

2.2.15

3 years ago

2.2.16

3 years ago

2.2.19

3 years ago

2.2.24

3 years ago

2.2.22

3 years ago

2.2.23

3 years ago

2.2.20

3 years ago

2.2.21

3 years ago

2.2.13

3 years ago

2.2.14

3 years ago

2.2.11

3 years ago

2.2.12

3 years ago

2.2.10

3 years ago

2.2.9

3 years ago

2.2.8

3 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.2.3

4 years ago

2.2.2

4 years ago

2.2.5

4 years ago

2.2.4

4 years ago

2.2.7

4 years ago

2.2.6

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.4

4 years ago

2.0.6

4 years ago

2.0.3

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

0.2.40

4 years ago

0.2.39

4 years ago

0.2.38

4 years ago

0.2.37

4 years ago

0.2.36

4 years ago

0.2.35

4 years ago

0.2.34

4 years ago

0.2.33

4 years ago

0.2.32

4 years ago

0.2.31

4 years ago

0.2.30

4 years ago

0.2.29

4 years ago

0.2.28

4 years ago

0.2.27

4 years ago

0.2.26

4 years ago

0.2.25

4 years ago

0.2.21

4 years ago

0.2.20

4 years ago

0.2.19

4 years ago

0.2.18

4 years ago

0.2.17

4 years ago

0.2.16

5 years ago

0.2.15

5 years ago

0.2.14

5 years ago

0.2.13

5 years ago

0.2.12

5 years ago

0.2.11

5 years ago

0.2.10

5 years ago

0.2.9

5 years ago

0.2.8

5 years ago

0.2.7

5 years ago

0.2.6

5 years ago

0.2.5

5 years ago

0.2.4

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.54

5 years ago

0.1.55

5 years ago

0.1.53

5 years ago

0.1.52

5 years ago

0.1.51

5 years ago

0.1.50

5 years ago

0.1.49

5 years ago

0.1.48

5 years ago

0.1.47

5 years ago

0.1.46

5 years ago

0.1.45

5 years ago

0.1.44

5 years ago

0.1.43

5 years ago

0.1.41

5 years ago

0.1.42

5 years ago

0.1.40

5 years ago

0.1.39

5 years ago

0.1.38

5 years ago

0.1.37

5 years ago

0.1.36

5 years ago

0.1.35

5 years ago

0.1.34

5 years ago

0.1.33

5 years ago

0.1.30

5 years ago

0.1.29

5 years ago

0.1.28

6 years ago

0.1.27

6 years ago

0.1.26

6 years ago

0.1.25

6 years ago

0.1.24

6 years ago

0.1.23

6 years ago

0.1.22

6 years ago

0.1.21

6 years ago

0.1.20

6 years ago

0.1.19

6 years ago

0.1.18

6 years ago

0.1.17

6 years ago

0.1.16

6 years ago

0.1.15

6 years ago

0.1.14

6 years ago

0.1.13

6 years ago

0.1.12

6 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago