Java仿射翻译-Can';t将平移X/Y重置为0
我正在做一个程序,在这个程序中,我同时围绕一个锚定点进行缩放和旋转。我通过以下方式做到这一点:Java仿射翻译-Can';t将平移X/Y重置为0,java,awt,affinetransform,Java,Awt,Affinetransform,我正在做一个程序,在这个程序中,我同时围绕一个锚定点进行缩放和旋转。我通过以下方式做到这一点: 平移,使原点位于锚点 缩放/旋转 翻译回原来的位置 但是,我似乎无法将原点放回(0,0)。这是我的密码: System.out.println(currentTransform.getTranslateX() + ", " + currentTransform.getTranslateY()); currentTransform.translate(an
System.out.println(currentTransform.getTranslateX() + ", " + currentTransform.getTranslateY());
currentTransform.translate(anchorPoint.x, anchorPoint.y);
currentTransform.rotate(Math.toRadians(-deltaAngle));
currentTransform.scale(scaleFactor, scaleFactor);
System.out.println(currentTransform.getTranslateX() + ", " + currentTransform.getTranslateY());
currentTransform.translate(-anchorPoint.x, -anchorPoint.y);
System.out.println(currentTransform.getTranslateX() + ", " + currentTransform.getTranslateY());
我第一次运行此代码时,输出如下:
0.0,0.0
109.0,85.0
0.2508035970521405,-1.415126056974529
任何后续运行在开始时都会显示相同的剩余平移
我需要做什么才能将翻译返回到0
编辑:
即使我替换了行
currentTransform.translate(-currentTransform.getTranslateX(),-currentTransform.getTranslateY())
代替currentTransform.translate(-anchorPoint.x,-anchorPoint.y)代码>基本上,您正在转换一个缩放的变换,因此您给出的坐标会在转换时开始缩放…即使我替换行currentTransform.translate(-currentTransform.getTranslate(),-currentTransform.getTranslateY()),问题仍然会发生
代替currentTransform.translate(-anchorPoint.x,-anchorPoint.y)代码>