docs: public Point pointAlongLineSegment(double distance) {
          if (start.x == end.x) {
              // we have a vertical line
              if (start.y > end.y) {
                  return new Point(end.x, end.y + distance);
              } else {
                  return new Point(start.x, start.y + distance);
              }
          } else {
              double slope = (end.y - start.y) / (end.x - start.x);
              double dx = Math.sqrt((distance * distance) / (1 + (slope * slope)));
              if (end.x < start.x) {
                  dx *= -1;
              }
              return new Point(start.x + dx, start.y + slope * dx);
          }
      }