我向左翻转功能(见下面的代码),但我似乎无法找到如何向右翻转。计算是否相似?
向左翻转:
{
gb.drawImage(img, 0, 0, null);
gb.dispose();
AffineTransform tx = new AffineTransform();
tx.translate(img.getHeight(null) / 2, img.getWidth(null) / 2);
tx.rotate(Math.PI / 2);
tx.translate(-img.getHeight(null) / 2, -img.getWidth(null) / 2);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
buffImg = op.filter(buffImg, null);
}
答案 0 :(得分:0)
如果要向左或向右旋转90度的倍数,可以使用AffineTransform.getQuadrantRotateInstance(int)方法:
AffineTransform rotateLeft = AffineTransform.getQuadrantRotateInstance(1);
AffineTransform rotateRight = AffineTransform.getQuadrantRotateInstance(-1);
还有锚定版本:
AffineTransform rotateRightCentered = AffineTransform.getQuadrantRotateInstance(-1, centerX, centerY);
如果你喜欢使用弧度,是的,它是相似的。剩下90度是-(Math.PI / 2)
。