code: function redundant(prev, p, next) {
  
              // 是否重合的点, 只有两个点同在曲线上或者同不在曲线上移出
              if (
                  (p.onCurve && next.onCurve || !p.onCurve && !next.onCurve)
                  && Math.pow(p.x - next.x, 2) + Math.pow(p.y - next.y, 2) <= 1
              ) {
                  return true;
              }
  
              // 三点同线 检查直线点
              if (
                  (p.onCurve && prev.onCurve && next.onCurve)
                  && Math.abs((next.y - p.y) * (prev.x - p.x) - (prev.y - p.y) * (next.x - p.x)) <= 0.001
              ) {
                  return true;
              }
  
              // 三点同线 检查控制点
              if (
                  (!p.onCurve && prev.onCurve && next.onCurve)
                  && Math.abs((next.y - p.y) * (prev.x - p.x) - (prev.y - p.y) * (next.x - p.x)) <= 0.001
              ) {
                  return true;
              }
  
              return false;
          }
docs: 判断点是否多余的点
  
  @param {Object} prev 上一个
  @param {Object} p 当前
  @param {Object} next 下一个
  @return {boolean}