内部に次のコードがあります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
です。
アップデート
私の間違い。
順次変換修正とは、右からの行列乗算を意味します。したがって、変換は左からの行列乗算であるため、変換中に最後に適用された変更が最初に機能します。