我正在尝试在Java中围绕某个点缩放形状。
使用AffineTransform.scale方法时,它是以左上角为基准进行缩放的。有没有办法以一个点为锚点进行缩放(比如说窗口的中心点)。
谢谢,
Ty
我正在尝试在Java中围绕某个点缩放形状。
使用AffineTransform.scale方法时,它是以左上角为基准进行缩放的。有没有办法以一个点为锚点进行缩放(比如说窗口的中心点)。
谢谢,
Ty
我同意Hovercraft Full of Eels的观点,正确的方法是将中心移动到左上角进行翻译,然后缩放,最后将左上角移回中心。
但是,如果您想在少于三个步骤内完成操作,可以使用以下变换:
x ⟼ S(x – c) + c = Sx + (c – Sc),
其中S是缩放变换,c是相对于左上角坐标系的中心。
因此,您需要先进行缩放,然后通过c - Sc进行平移。
Component
c
的中心点坐标为(c.getWidth()/2, c.getHeight()/2)
。 - Lone nebula