Пример #1
0
  private double getSmoothedNormal(Point2D prev, Point2D p, Point2D next, int normalIndex) {
    double n = AngleUtil.normalize(next.getSubtraction(p).getAngle() - AngleUtil.RIGHT);
    double prevN = AngleUtil.normalize(p.getSubtraction(prev).getAngle() - AngleUtil.RIGHT);

    double diff = AngleUtil.getSmallestDifference(n, prevN);
    double bissector = AngleUtil.getBisector(prevN, n);
    double res;

    if (diff > NO_SMOOTH_ANGLE) {
      if (normalIndex == 0) {
        res = n;
      } else {
        res = prevN;
      }
    } else {
      res = bissector;
    }

    return res;
  }