Wenn ich die Skalierung auf (1,2,1,2) setze, werden die Komponenten um 1,2 skaliert. Aber ich muss es von der Mitte skalieren .. wie zoomen von der Mitte. Wie man das erreicht. Ich weiß, ich muss es übersetzen, aber um wieviel?Skalierung Komponenten Java
-1
A
Antwort
0
Sie müssen die Objekte immer um die Hälfte ihrer Größe translatieren, um zu ihrer Mitte zu gelangen. Wenn Sie also ein Objekt um 1,2 skalieren, skalieren Sie den Offset effektiv um 1,2.
So können Sie leicht etwas wie (in Pseudo-Code) tun:
obj.x += obj.width * scalingfactor/2
obj.scaleX = scalingfactor
obj.y += obj.height * scalingfactor/2
obj.scaleY = scalingfactor
Vergessen Sie nicht, dass Sie die Höhe skalieren müssen. –
Hier ist das Objekt ganz JPanel und ich zoome den gesamten Inhalt davon. Es gibt nicht die richtige Lösung, wenn ich translate 'gebe (this.getWidth() * zoomLevel + this.getLocation.getX(), this.getHeight() * zoomLevel + this.getLocation.getY());' –