How to rotate and scale a Rectangle2D in java and return a Rectangle2D (not a Shape or Path2D)

78 views Asked by At

Is it possible to scale or rotate a Rectangle2D and get a new transformed Rectangle2D? I know it is possible to get a Shape or Path2D, but how to get a new Rectangle2D from a specific Affine transform that in theory return a Rectangle also?

Maybe reconstruct a new Rectangle2D from Path2D (iteration?), but how? Rectangle2D will feed the TexturePaint class anchor parameter.

methods that return a Path2D/Shape

       private Path2D.Double transformRotate(Rectangle2D.Double rect) {
    
        AffineTransform transform = new AffineTransform();
          double theta=0.5;
        double angle = Math.toRadians(theta);
    //  transform.rotate(angle, rect.x + rect.width / 2, rect.y + rect.height / 2);   
        transform.rotate( orientationX, orientationY, rect.x + rect.width / 2, rect.y + rect.height / 2);
        
        return new Path2D.Double(rect, transform);
    }
       

                AffineTransform transformRect = new AffineTransform();
transformRect.rotate(orientationX, orientationY, rectFinal.getX() + rectFinal.getWidth()/2, rectFinal.getY() + rectFinal.getHeight()/2);

Shape rotatedRect =  transformRect.createTransformedShape(rectFinal); //or path2D

0

There are 0 answers