Ich habe mehrere Objekte, die ich zusammen rotieren möchte. Wenn sie bei 0 Grad (nach gerade) sind, sind sie gut, aber wenn sie es nicht sind, sieht es wie folgt aus:Wie kann ich die Rotation mehrerer Bilder in JavaFX synchronisieren? Canvas
ich diesen Code verwende zu drehen:
private void rotate(GraphicsContext gc, double angle, double px, double py) {
Rotate r = new Rotate(angle, px, py);
gc.setTransform(r.getMxx(), r.getMyx(), r.getMxy(), r.getMyy(), r.getTx(), r.getTy());
}
private void drawRotatedImage(GraphicsContext gc, Image image, double angle, double tlpx, double tlpy) {
gc.save(); // saves the current state on stack, including the current transform
rotate(gc, angle, tlpx + image.getWidth()/2, tlpy + image.getHeight()/2);
gc.drawImage(image, tlpx, tlpy);
gc.restore(); // back to original state (before rotation)
}
Ich habe eine Reihe von Bildern, die ich benutze und rotiere sie, indem ich drawRotatedImage
mit einem einheitlichen Winkel anrufe. Alle Bilder sind 32 x 32
. Wie kann ich diese Verschiebung in den Bildern beheben?
Kann das Problem nicht reproduzieren. Der Code dreht die Bilder um ihre jeweiligen Zentren, wenn ich es teste ... – fabian
@fabian Es gibt eine Grad-Variable. Es gibt eine Liste von Bildern, die mit dieser Variablen angezeigt werden sollen. Sie sind alle 32 x 32. Sie haben eine spezifizierte "x" und "y" Koordinate zum Zeichnen. Ich zeichne sie an dieser Koordinate und drehe das Bild. Wie kann ich es so machen, dass sie sich als Ganzes drehen? – theTechnoKid