Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仿射变换-围绕点缩放_Java_Affinetransform - Fatal编程技术网

Java 仿射变换-围绕点缩放

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

我试图在Java中围绕某个点缩放一个形状

使用AffineTransform.scale方法时,它会基于左上角进行缩放。是否仍要缩放锚定在某个点上(例如,在本例中为窗口的中心)

谢谢


Ty

我同意满是鳗鱼的气垫船的说法,正确的方法是将中心移到左上角,缩放,然后将左上角移回中心

但是,如果希望在少于三步的时间内执行转换,则转换为:

x⟼ S(x-c)+c=Sx+(c-Sc)

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


所以,你需要进行缩放,然后用c–Sc进行平移。

translate--Scale--translate back。虽然我不知道我的对象的大小,但我如何确定要平移多少?你必须知道中心相对于左上角的位置,否则我认为你运气不好。
组件的中心位于
(c.getWidth()/2,c.getHeight()/2)