mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-01-07 13:22:07 -05:00
Remove Douglas–Peucker algorithm again since it produced ackward results.
This commit is contained in:
parent
42f5b5e26e
commit
ca18b20785
1 changed files with 0 additions and 23 deletions
|
@ -31,7 +31,6 @@ var PathFitter = Base.extend({
|
||||||
prev = point;
|
prev = point;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.points = this.reducePoints(this.points, 1);
|
|
||||||
this.error = error;
|
this.error = error;
|
||||||
this.iterationError = error * error;
|
this.iterationError = error * error;
|
||||||
},
|
},
|
||||||
|
@ -47,28 +46,6 @@ var PathFitter = Base.extend({
|
||||||
return this.segments;
|
return this.segments;
|
||||||
},
|
},
|
||||||
|
|
||||||
// Douglas–Peucker algorithm
|
|
||||||
reducePoints: function(points, tolerance) {
|
|
||||||
var line = new Line(points[0], points[points.length - 1], false);
|
|
||||||
var maxDistance = 0,
|
|
||||||
maxIndex = 0;
|
|
||||||
for (var i = 1; i < points.length - 1; i++) {
|
|
||||||
var distance = line.getDistance(points[i]);
|
|
||||||
if(distance > maxDistance) {
|
|
||||||
maxDistance = distance;
|
|
||||||
maxIndex = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (maxDistance >= tolerance) {
|
|
||||||
var pts = this.reducePoints(
|
|
||||||
points.slice(0, maxIndex + 1), tolerance);
|
|
||||||
pts.pop();
|
|
||||||
return pts.concat(this.reducePoints(
|
|
||||||
points.slice(maxIndex, points.length), tolerance));
|
|
||||||
}
|
|
||||||
return [points[0], points[points.length - 1]];
|
|
||||||
},
|
|
||||||
|
|
||||||
// Fit a Bezier curve to a (sub)set of digitized points
|
// Fit a Bezier curve to a (sub)set of digitized points
|
||||||
fitCubic: function(first, last, tHat1, tHat2) {
|
fitCubic: function(first, last, tHat1, tHat2) {
|
||||||
// Use heuristic if region only has two points in it
|
// Use heuristic if region only has two points in it
|
||||||
|
|
Loading…
Reference in a new issue