forked from mapbox/delaunator
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbench.js
More file actions
49 lines (41 loc) · 1.32 KB
/
bench.js
File metadata and controls
49 lines (41 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'use strict'; /* eslint no-new: 0, no-unused-vars: 0 */
var Delaunator = require('./');
// var fasterDelaunay = require('faster-delaunay');
// var incrementalDelaunay = require('incremental-delaunay');
// var delaunayFast = require('delaunay-fast');
// var d3voronoi = require('d3-voronoi').voronoi();
function triangulate(points) {
new Delaunator(points);
// fasterDelaunay(points).triangulate();
// d3voronoi(points);
// incrementalDelaunay(points);
// delaunayFast.triangulate(points);
}
var counts = [10000, 20000, 50000, 100000, 200000, 500000, 1000000];
var generate = uniform;
triangulate(generate(counts[0]));
for (var i = 0; i < counts.length; i++) {
var c = counts[i];
var points = generate(c);
console.time(c);
triangulate(points);
console.timeEnd(c);
}
function uniform(count) {
var points = [];
for (var i = 0; i < count; i++) {
points.push([Math.random() * 1e3, Math.random() * 1e3]);
}
return points;
}
function gaussian(count) {
var points = [];
for (var i = 0; i < count; i++) {
points.push([pseudoNormal() * 1e3, pseudoNormal() * 1e3]);
}
return points;
}
function pseudoNormal() {
var v = Math.random() + Math.random() + Math.random() + Math.random() + Math.random() + Math.random();
return Math.min(0.5 * (v - 3) / 3, 1);
}