Есть разные способы сделать это - кроме предложенной вами прямой математики, которую вы должны применить и к матрице преобразования, чтобы быть на одной стороне:
a) используйте точки и преобразуйте их:
AffineTransform at=AffineTransform.getRotateInstance(....);
Point p=new Point(x, y);
at.transform(p, p);
Это преобразует точку p и сохранит результат в себе, поэтому p изменится - вы можете использовать другую точку для хранения новых координат.
Применитесь к четырем точкам, затем создайте многоугольник
Polygon pl=new Polygon();
for(i=0; i<points.length; i+++) pl.addPoint(points[i].x, points[i].y);
Полигон имеет метод contains ().
б) создать полигон (или прямоугольник) из исходного изображения
Polygon pl=new Polygon();
pl.addPoint(0, 0);
pl.addPoint(im.getWidth()-1, 0);
pl.addPoint(im.getWidth()-1, im.getHeight()-1);
pl.addPoint(0, im.getHeight()-1);
или
Rectangle r=new Rectangle(0, 0, im.getWidth(), im.getHeight());
Тогда используйте
AffineTransform at=new AffineTransform(.....);
Shape sh=at.createTransformedShape(pl);
и имейте sh как новую форму. Эта вещь не всегда работает точно (я имею в виду все это с формами, границами и т. Д.), Но удобна, если вы ищете это.