Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jankozik/delaunator_cpp
A really fast C++ library for Delaunay triangulation of 2D points
https://github.com/jankozik/delaunator_cpp
2d algorithm computational-geometry cpp delaunay mapbox triangulation
Last synced: 9 days ago
JSON representation
A really fast C++ library for Delaunay triangulation of 2D points
- Host: GitHub
- URL: https://github.com/jankozik/delaunator_cpp
- Owner: jankozik
- License: mit
- Created: 2023-05-27T07:35:37.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-14T15:53:38.000Z (over 1 year ago)
- Last Synced: 2023-07-14T16:57:31.174Z (over 1 year ago)
- Topics: 2d, algorithm, computational-geometry, cpp, delaunay, mapbox, triangulation
- Language: C++
- Homepage:
- Size: 2.23 MB
- Stars: 27
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# delaunator-cpp
A really fast C++ library for
[Delaunay triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation) of 2D points.delaunator-cpp is a C++ port from https://github.com/mapbox/delaunator a JavaScript implementation of very fast 2D Delaunay algorithm.
## Features
* Probably the fastest C++ open source 2D Delaunay implementation
* Example showing triangulation of GeoJson points## Usage
`examples/basic.cpp`
```CPP
#include
#includeint main() {
/* x0, y0, x1, y1, ... */
std::vector coords = {-1, 1, 1, 1, 1, -1, -1, -1};//triangulation happens here
delaunator::Delaunator d(coords);for(std::size_t i = 0; i < d.triangles.size(); i+=3) {
printf(
"Triangle points: [[%f, %f], [%f, %f], [%f, %f]]\n",
d.coords[2 * d.triangles[i]], //tx0
d.coords[2 * d.triangles[i] + 1], //ty0
d.coords[2 * d.triangles[i + 1]], //tx1
d.coords[2 * d.triangles[i + 1] + 1],//ty1
d.coords[2 * d.triangles[i + 2]], //tx2
d.coords[2 * d.triangles[i + 2] + 1] //ty2
);
}
}
```[See more examples here](./examples)
## Benchmarks
```
Run on (4 X 2300 MHz CPU s)
2018-09-29 09:27:28
------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------
BM_45K_geojson_nodes 22 ms 22 ms 32
BM_uniform/2000 1 ms 1 ms 982
BM_uniform/100000 63 ms 62 ms 9
BM_uniform/200000 140 ms 140 ms 4
BM_uniform/500000 400 ms 399 ms 2
BM_uniform/1000000 994 ms 993 ms 1
```Library is ~10% faster then JS version for 1M uniform points.