Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A Ruby implementation of the Douglas-Peucker algorithm

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

Douglas-Peucker Algorithm

This algorithm simplifies a line by recursively dividing a line and removing points outside of a predefined threshold. Check out the Wikipedia page to read up on it more.

Usage

>> require "douglas_peucker"
=> true
>> line = [[0, 0], [1, 1], [2, 1], [3, 2.5], [4, 4]]
=> [[0, 0], [1, 1], [2, 1], [3, 2.5], [4, 4]]
>> DouglasPeucker::LineSimplifier.new(line).threshold(1).points
=> [[0, 0], [4, 4]]
>> DouglasPeucker::LineSimplifier.new(line).threshold(0.5).points
=> [[0, 0], [2, 1], [4, 4]]
>> DouglasPeucker::LineSimplifier.new(line).points
=> [[0, 0], [1, 1], [2, 1], [4, 4]]

License

See the LICENSE

Author

Written by Josh Clayton, although the algorithm and its various implementations have been written before.

Something went wrong with that request. Please try again.