Java 仿射变换-围绕点缩放
我试图在Java中围绕某个点缩放一个形状 使用AffineTransform.scale方法时,它会基于左上角进行缩放。是否仍要缩放锚定在某个点上(例如,在本例中为窗口的中心) 谢谢Java 仿射变换-围绕点缩放,java,affinetransform,Java,Affinetransform,我试图在Java中围绕某个点缩放一个形状 使用AffineTransform.scale方法时,它会基于左上角进行缩放。是否仍要缩放锚定在某个点上(例如,在本例中为窗口的中心) 谢谢 Ty我同意满是鳗鱼的气垫船的说法,正确的方法是将中心移到左上角,缩放,然后将左上角移回中心 但是,如果希望在少于三步的时间内执行转换,则转换为: x⟼ S(x-c)+c=Sx+(c-Sc) 其中S是缩放变换,c是相对于左上角的坐标中心 所以,你需要进行缩放,然后用c–Sc进行平移。translate--Scale-
Ty我同意满是鳗鱼的气垫船的说法,正确的方法是将中心移到左上角,缩放,然后将左上角移回中心 但是,如果希望在少于三步的时间内执行转换,则转换为: x⟼ S(x-c)+c=Sx+(c-Sc) 其中S是缩放变换,c是相对于左上角的坐标中心
所以,你需要进行缩放,然后用c–Sc进行平移。translate--Scale--translate back。虽然我不知道我的对象的大小,但我如何确定要平移多少?你必须知道中心相对于左上角的位置,否则我认为你运气不好。
组件的中心位于(c.getWidth()/2,c.getHeight()/2)
。