118 lines
5.4 KiB
HTML
118 lines
5.4 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<title>psimpl: psimpl - generic n-dimensional polyline simplification</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(initResizable);
|
|
</script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<!-- Generated by Doxygen 1.7.4 -->
|
|
<div id="top">
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td style="padding-left: 0.5em;">
|
|
<div id="projectname">psimpl <span id="projectnumber">7</span></div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
<li><a href="dirs.html"><span>Directories</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
initNavTree('index.html','');
|
|
</script>
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">psimpl - generic n-dimensional polyline simplification </div> </div>
|
|
</div>
|
|
<div class="contents">
|
|
<div class="textblock"><pre>
|
|
Author - Elmar de Koning
|
|
Support - <a href="mailto:edekoning@gmail.com">edekoning@gmail.com</a>
|
|
Website - <a href="http://psimpl.sf.net">http://psimpl.sf.net</a>
|
|
Article - <a href="http://www.codeproject.com/KB/recipes/PolylineSimplification.aspx">http://www.codeproject.com/KB/recipes/PolylineSimplification.aspx</a>
|
|
License - MPL 1.1
|
|
</pre><p><br/>
|
|
</p>
|
|
<h2><a class="anchor" id="sec_psimpl"></a>
|
|
psimpl</h2>
|
|
<pre>
|
|
'psimpl' is a c++ polyline simplification library that is generic, easy to use, and supports
|
|
the following algorithms:</pre><pre> Simplification
|
|
+ Nth point - A naive algorithm that keeps only each nth point
|
|
+ Distance between points - Removes successive points that are clustered together
|
|
+ Perpendicular distance - Removes points based on their distance to the line segment defined
|
|
by their left and right neighbors
|
|
+ Reumann-Witkam - Shifts a strip along the polyline and removes points that fall outside
|
|
+ Opheim - A constrained version of Reumann-Witkam
|
|
+ Lang - Similar to the Perpendicular distance routine, but instead of looking only at direct
|
|
neighbors, an entire search region is processed
|
|
+ Douglas-Peucker - A classic simplification algorithm that provides an excellent approximation
|
|
of the original line
|
|
+ A variation on the Douglas-Peucker algorithm - Slower, but yields better results at lower resolutions</pre><pre> Errors
|
|
+ positional error - Distance of each polyline point to its simplification</pre><pre> All the algorithms have been implemented in a single standalone C++ header using an STL-style
|
|
interface that operates on input and output iterators. Polylines can be of any dimension, and
|
|
defined using floating point or signed integer data types.
|
|
</pre><p><br/>
|
|
</p>
|
|
<h2><a class="anchor" id="sec_changelog"></a>
|
|
changelog</h2>
|
|
<pre>
|
|
28-09-2010 - Initial version
|
|
23-10-2010 - Changed license from CPOL to MPL
|
|
26-10-2010 - Clarified input (type) requirements, and changed the behavior of the algorithms
|
|
under invalid input
|
|
01-12-2010 - Added the nth point, perpendicular distance and Reumann-Witkam routines; moved all
|
|
functions related to distance calculations to the math namespace
|
|
10-12-2010 - Fixed a bug in the perpendicular distance routine
|
|
27-02-2011 - Added Opheim simplification, and functions for computing positional errors due to
|
|
simplification; renamed simplify_douglas_peucker_alt to simplify_douglas_peucker_n
|
|
18-06-2011 - Added Lang simplification; fixed divide by zero bug when using integers; fixed a
|
|
bug where incorrect output iterators were returned under invalid input; fixed a bug
|
|
in douglas_peucker_n where an incorrect number of points could be returned; fixed a
|
|
bug in compute_positional_errors2 that required the output and input iterator types
|
|
to be the same; fixed a bug in compute_positional_error_statistics where invalid
|
|
statistics could be returned under questionable input; documented input iterator
|
|
requirements for each algorithm; miscellaneous refactoring of most algorithms.
|
|
</pre> </div></div>
|
|
</div>
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="footer">Generated on Fri Jun 24 2011 14:56:29 for psimpl by 
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
|
|
</ul>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|