Как мне добавить качающийся таймер в этот фрагмент кода, чтобы продемонстрировать преобразование? - PullRequest
0 голосов
/ 24 марта 2020

На самом деле, я работаю над уже написанным кодом, но мне нужно добавить дополнительные функции. Это система сетки, где вы можете рисовать фигуры с помощью щелчков мыши и применять преобразования, такие как перемещение, вращение и так далее. Если я получу представление о том, как сделать одно преобразование, я думаю, что смогу справиться с другими преобразованиями. Например, существующий код теперь просто выводит окончательное преобразование на фигуре, но я должен продемонстрировать это с помощью анимации до окончательного результата. Как я могу это сделать? 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();





                }

            }

    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...