扩展组件java

扩展组件java,java,scale,graphics2d,Java,Scale,Graphics2d,当我将比例设置为(1.2,1.2)时,组件的比例为1.2。。但我需要从中心开始缩放。。就像从中心放大一样。如何做到这一点。我知道我必须翻译它,但翻译的数量是多少???你总是必须将对象的大小转换为其大小的一半才能到达其中心。因此,如果将对象缩放1.2,则实际上也将偏移缩放1.2 因此,您可以轻松地执行以下操作(在伪代码中): 不要忘记你也必须缩放高度。这里的对象是一个JPanel的整体,我正在缩放它的全部内容。如果我给出translate(this.getWidth()*zoomLevel+thi

当我将比例设置为(1.2,1.2)时,组件的比例为1.2。。但我需要从中心开始缩放。。就像从中心放大一样。如何做到这一点。我知道我必须翻译它,但翻译的数量是多少???

你总是必须将对象的大小转换为其大小的一半才能到达其中心。因此,如果将对象缩放1.2,则实际上也将偏移缩放1.2

因此,您可以轻松地执行以下操作(在伪代码中):


不要忘记你也必须缩放高度。这里的对象是一个JPanel的整体,我正在缩放它的全部内容。如果我给出translate
(this.getWidth()*zoomLevel+this.getLocation.getX(),this.getHeight()*zoomLevel+this.getLocation.getY()),它就没有给出正确的解决方案
obj.x += obj.width * scalingfactor / 2
obj.scaleX = scalingfactor
obj.y += obj.height * scalingfactor / 2
obj.scaleY = scalingfactor