目前我正在使用“Douglas Peucker”算法。
我的问题是,当我画画的时候,之前画的线也在变化,这当然不现实。是否有其他替代算法来最小化保存的点但不改变以前的绘制点或其他方式来改变“Douglas Peucker”以满足我的需要?
目前我正在使用“Douglas Peucker”算法。
我的问题是,当我画画的时候,之前画的线也在变化,这当然不现实。是否有其他替代算法来最小化保存的点但不改变以前的绘制点或其他方式来改变“Douglas Peucker”以满足我的需要?
为您的铅笔绘图工具提供 2 种可选的绘图方法:
使用 mousemove(这是您当前的自由形式方法)在路径上绘制一个新点。此选项将允许用户添加许多点,这将使他们在绘图中非常详细。
仅在鼠标按下时在路径上绘制一个新点。此选项只是将路径上的前一个点连接到新单击的点。此选项将让用户只添加几条非常直线,这将允许他们勾勒出具有长直边的图形。
如果您担心用户绘图时自由路径的变化,您可以在他们停止移动鼠标 1 秒后应用一次简化算法。
如果您指定 Douglas-Peucker 算法使用高偏差来确保准确性,那么简化路径将与未简化路径保持一致。
顺便说一句,如果您想通过您的点绘制样条线,请查看这篇不错的上一篇文章:如何使用 javascript HTML5 画布通过 N 个点绘制平滑曲线?