public void rotate(double theta,Point2D from){
  AffineTransform rotate=AffineTransform.getRotateInstance(theta,from.getX(),from.getY());
  inverse=null;
  transform.preConcatenate(rotate);
  fireStateChanged();
}

public void rotate ( double theta , Point2D from ) { AffineTransform rotate = AffineTransform . getRotateInstance ( theta , from . getX ( ) , from . getY ( ) ) ; inverse = null ; transform . preConcatenate ( rotate ) ; fireStateChanged ( ) ; }
preconcatenates the rotation at the supplied point with the current transform
