float miterLimit = (float) (STROKE_MITER_LIMIT_FACTOR.get(f) * strokeWidth);
float miterLimit = (float) (STROKE_MITER_LIMIT.get(f) * strokeWidth);
    public Rectangle2D.Double getDrawBounds(Figure f, Point2D.Double p1, Point2D.Double p2) {        GeneralPath path = getTransformedDecoratorPath(f, p1, p2);        Rectangle2D b = path.getBounds2D();        Rectangle2D.Double bounds = new Rectangle2D.Double(b.getX(), b.getY(), b.getWidth(), b.getHeight());                if (isStroked) {            double strokeWidth = STROKE_WIDTH.get(f);            int strokeJoin = STROKE_JOIN.get(f);            float miterLimit = (float) (STROKE_MITER_LIMIT_FACTOR.get(f) * strokeWidth);                        int grow;            if (strokeJoin == BasicStroke.JOIN_MITER) {                grow  = (int) (1 + strokeWidth / 2 * miterLimit);            } else {                grow  = (int) (1 + strokeWidth / 2);            }            Geom.grow(bounds, grow, grow);        }                return bounds;    }