getEnvelope and getEnvelopeInternal return rectangles aligned with the xy axes. If you prefer the minimal bounding which may be aligned obliqely, use MinimumAreaRectangle.getMinumumRectangle