Skip to content

A very simple algorithm for culling vertices while minimally changing the shape of a polygon.

License

Notifications You must be signed in to change notification settings

bm13563/vertexCull.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vertexCull.js

A very simple algorithm for culling vertices while minimally changing the shape of a polygon.

A simple algorithm that removes sub-linear vertices, to improve performance of spatial applications. Effective at preserving the shape of a polygon while substantially decreasing vertex count, particularly with regularly-shaped polygons (e.g buildings). Much less effective than the Ramer-Douglas-Peucker algorithm for large-scale generalisation, but does a good job of maximising shape preservation.

Source

// URL
<script src="https://bm13563.github.io/vertexCull.js/build/bundle.js"></script>

// NODE
npm install vertexcull

NPM package info: https://www.npmjs.com/package/vertexcull.

Use

// FROM URL
var culledPolygon = new vc.CulledPolygon(polygon, theta);
console.log(culledPolygon.culledPolygon);

// FROM NODE
var vc = require('vertexcull/build/bundle');
var culledPolygon = new vc.CulledPolygon(polygon, theta);
console.log(culledPolygon.culledPolygon);

Where polygon is an array in the form [{x:100, y:200}, {x:300, y:400}, ...] and theta is a tolerance for point discarding. Designed to be used at theta values of <= 5. Will work for theta values > 5, but the user may want to consider whether the Ramer-Douglas-Peucker algorithm is more appropriate in such cases.

Demo

https://bm13563.github.io/vertexCull.js/

About

A very simple algorithm for culling vertices while minimally changing the shape of a polygon.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published