AffineTransform tx = new AffineTransform(); tx.scale(scalex, scaley); tx.shear(shiftx, shifty); tx.translate(x, y); tx.rotate(radians); Shape newShape = tx.createTransformedShape(shape);