7

我正在尝试围绕某个点缩放我在 Java 中拥有的形状。

当我使用 AffineTransform.scale 方法时,它会根据左上角进行缩放。无论如何都可以缩放锚定在一个点(比如这种情况下的窗口中心)。

谢谢,

4

1 回答 1

4

我同意 Hovercraft Full of Eels 的观点,正确的做法是将中心平移到左上角,缩放,然后将左上角平移回中心。

但是,如果您希望它在少于三个步骤中执行它,则转换为:

x ⟼ S(x – c) + c = Sx + (c – Sc),

其中 S 是缩放变换,c 是相对于左上角的坐标中心。

因此,您需要进行缩放,然后通过 c – Sc 进行翻译。

于 2014-10-27T23:11:25.477 回答