На самом деле, я работаю над уже написанным кодом, но мне нужно добавить дополнительные функции. Это система сетки, где вы можете рисовать фигуры с помощью щелчков мыши и применять преобразования, такие как перемещение, вращение и так далее. Если я получу представление о том, как сделать одно преобразование, я думаю, что смогу справиться с другими преобразованиями. Например, существующий код теперь просто выводит окончательное преобразование на фигуре, но я должен продемонстрировать это с помощью анимации до окончательного результата. Как я могу это сделать? bRotate - это кнопка для вращения
bRotate.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
Panel.Translate=false;
Panel.Rotate=true;
Panel.Scale=false;
Panel.Shear=false;
Panel.Reflect=false;
Panel.Fill=false;
Panel.draw=false;
double angle = Integer.parseInt(tAngle.getText())*-1;
int ptsNum = Panel.poly.X.length;
if( Panel.R==null){
Panel.R = new double[ptsNum][2];
for(int i=0;i<ptsNum;i++){
Panel.R[i][0]= Panel.poly.X[i];
Panel.R[i][1]= Panel.poly.Y[i];
}
}
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent e){
Panel.R = Transformation.rotate( Panel.R, angle);
double [] xpts = new double[ptsNum];
double [] ypts = new double[ptsNum];
for(int i=0;i<ptsNum;i++){
xpts[i]=(int) Panel.R[i][0];
ypts[i]=(int) Panel.R[i][1];
}
Panel.poly= new Polygon(xpts,ypts,xpts.length);
Panel.undoPoly.add(Panel.poly);
Panel.currentPolygon=null;
Panel.enable=true;
Main.enabled();
repaint();
}
};
Timer timer = new Timer(10, listener);
timer.start();
}
}
);