This is a surprisingly different algorithm from Douglas-Ramer-Peucker. Visvalingam's algorithm gradually removes detail, while Peucker gradually restores removed detail.
I'm really curious, too, how Visvalingam performs when the variance of the heights of the triangles is large. Intuitively, it seems like it'd be much more aggressive than Peucker about removing spikes in data, which, depending on what you were aiming at, could be good or bad. Imagine processing a polyline whose coordinates are:
[0,0],[4,2],[8,0],[9,-9],[10,0],[14,1],[18,0]
Peucker would preserve [9,-9] until very last. It seems like Visvalingam would remove that relatively early.
edit: Either way, it's a nice algorithm to add to the quiver.
I'm really curious, too, how Visvalingam performs when the variance of the heights of the triangles is large. Intuitively, it seems like it'd be much more aggressive than Peucker about removing spikes in data, which, depending on what you were aiming at, could be good or bad. Imagine processing a polyline whose coordinates are:
[0,0],[4,2],[8,0],[9,-9],[10,0],[14,1],[18,0]
Peucker would preserve [9,-9] until very last. It seems like Visvalingam would remove that relatively early.
edit: Either way, it's a nice algorithm to add to the quiver.