我在里面找到以下代码PAffineTransform
:
/**
* Scales the transform about the given point by the given scale.
*
* @param scale to transform the transform by
* @param x x coordinate around which the scale should take place
* @param y y coordinate around which the scale should take place
*/
public void scaleAboutPoint(final double scale, final double x, final double y) {
//TODO strange order
translate(x, y);
scale(scale, scale);
translate(-x, -y);
}
做反向不是正确的:
translate(-x, -y);
scale(scale, scale);
translate(x, y);
所有使用的方法都与中相同AffineTransform
。
更新
我的错。
顺序变换修改是指从右边开始的矩阵乘法。因此,最后应用的修改在变换时首先起作用,因为变换是从左边开始的矩阵乘法。