我正试图在某个点上缩放我在Java中的形状。
当我使用AffineTransform.scale方法时,它会根据左上角进行缩放。无论如何都要按比例锚定在一个点上(比如说这个案例的窗口中心)。
谢谢,
泰
答案 0 :(得分:4)
我同意Hovercraft Full of Eels的说法,正确的做法是将中心转换到左上角,缩放,然后将左上角翻译回中心。
但是,如果您希望它在少于三个步骤中执行,则转换为:
x⟼S(x-c)+ c = Sx +(c-Sc),
其中S是缩放变换,c是坐标相对于左上角的中心。
因此,您需要进行缩放,然后通过c - Sc进行翻译。