AffineTransform at = AffineTransform.getScaleInstance(0.5, 1);
MathTransform2D t = (MathTransform2D) ReferencingFactoryFinder.getMathTransformFactory(null)
.createAffineTransform(new GeneralMatrix(at));
envelope = JTS.transform(envelope, t);
assertEquals(new Envelope(0, 5, 0, 10), envelope);
envelope = JTS.transform(envelope, t.inverse());
assertEquals(new Envelope(0, 10, 0, 10), envelope);
envelope = JTS.transform(envelope, null, t, 10);
assertEquals(new Envelope(0, 5, 0, 10), envelope);
envelope = JTS.transform(envelope, null, t.inverse(), 10);