La rotation d'un rectangle en forme de Polygone autour de son centre. (Java)

J'ai ce code pour dessiner un rectangle (objet Polygone), puis dessinez un autre rectangle qui est l'original, avec une rotation de 90 degrés, à l'aide de la matrice de rotation.

public class DrawingPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
Point p1,p2,p3,p4;
p1 = new Point(50,50);
p2 = new Point(200,50);
p3 = new Point(200,100);
p4 = new Point(50,100);
int[] x = {(int) p1.getX(), (int) p2.getX(), (int)p3.getX(), (int) p4.getX()};
int[] y = {(int) p1.getY(), (int) p2.getY(), (int)p3.getY(), (int) p4.getY()};
Polygon poly = new Polygon(x, y, x.length);
g2d.draw(poly);
p1.setLocation(p1.getX() * Math.cos(Math.toRadians(90)) - p1.getY() * Math.sin(Math.toRadians(90)),
p1.getX() * Math.sin(Math.toRadians(90)) + p1.getY() * Math.cos(Math.toRadians(90)));
p2.setLocation(p2.getX() * Math.cos(Math.toRadians(90)) - p2.getY() * Math.sin(Math.toRadians(90)),
p2.getX() * Math.sin(Math.toRadians(90)) + p2.getY() * Math.cos(Math.toRadians(90)));
p3.setLocation(p3.getX() * Math.cos(Math.toRadians(90)) - p3.getY() * Math.sin(Math.toRadians(90)),
p3.getX() * Math.sin(Math.toRadians(90)) + p3.getY() * Math.cos(Math.toRadians(90)));
p4.setLocation(p4.getX() * Math.cos(Math.toRadians(90)) - p4.getY() * Math.sin(Math.toRadians(90)),
p4.getX() * Math.sin(Math.toRadians(90)) + p4.getY() * Math.cos(Math.toRadians(90)));
int[] x2 = {(int) p1.getX(), (int) p2.getX(), (int)p3.getX(), (int) p4.getX()};
int[] y2 = {(int) p1.getY(), (int) p2.getY(), (int)p3.getY(), (int) p4.getY()};
Polygon poly2 = new Polygon(x2, y2, x2.length);
g2d.draw(poly2);
}
}

Actuellement, le deuxième rectangle de ne pas s'afficher. Quand j'ai demandé à ce sujet dans une autre question, quelqu'un a répondu que c'est parce qu'il attire à l'extérieur de l'écran.

J'ai demandé comment faire pivoter le rectangle autour de son centre, de sorte que le nouveau dessin apparaîtra à l'écran, et il a répondu, mais je n'ai pas vraiment compris comment mettre en application ce qu'il a dit dans le code (essayé différentes choses qui ne fonctionnent pas).

Pourriez-vous me montrer exactement dans le code, comment faire pivoter le rectangle autour de son centre?

(Bien sûr, ce n'est pas réel de rotation d'un objet. C'est faire une rotation-une copie d'un objet).

Aide serait appréciée. Grâce

Pourquoi ne pas traduire les Graphiques sur le rectangle du centre, puis de la faire pivoter, puis tracez un rectangle à l'aide de ces nouvelles coordonnées (et de l'onu, de faire pivoter et de l'onu-traduire les graphiques)?

OriginalL'auteur user3150201 | 2014-01-05