Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2012, 21:00   #1
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию Вращающийся отрезок вокруг точки, движущийся по отрезку

Вот накидал код

Код:
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
 
/**
 *
 * @author Jin
 */
public class JavaApplication10{
 
    /**
     * @param args the command line arguments
     */
    public static void main(final String[] args) {
                JFrame fr = new JFrame("Программа");
                JPanel pan = new MyPanel();
                fr.setPreferredSize(new Dimension(400, 400));
                fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                JScrollPane sp = new JScrollPane(pan);
                fr.add(sp);
                fr.pack();
                fr.setVisible(true);
 
        }
}
Код:
package javaapplication10;
 
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.util.Random;
import javax.swing.JPanel;
import javax.swing.Timer;
 
public class MyPanel extends JPanel {
        GeneralPath shape;
 
        private AffineTransform transformers;
        
                Random r = new Random();
                
                final double y = r.nextInt(100);
                final double x = r.nextInt(100);
                
 
                double x1 = x+100 ;
                double y1 = y+100;
        public MyPanel() {
                setPreferredSize(new Dimension(400, 400));
                GeneralPath path = new GeneralPath();
                
                path.append(new Ellipse2D.Double(x1++,y1++,4,4),false);
                path.append(new Line2D.Double(x1+100, y1+100, x1-100, y1-100), false);
                
                Timer tm = new Timer(100, new ActionListener() {
                    int i = 0;
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            
                                transformers = AffineTransform.getRotateInstance(i++ * 0.05,
                                                x1, y1);
                               
                               
                                repaint();
                        }
                        
                });
                tm.start();
                shape=path;
        }
        
 
        @Override
        protected void paintComponent(Graphics g) {
 
                super.paintComponent(g);
                Graphics2D g2 = (Graphics2D) g;
                
              
                        g2.transform(transformers);
                       
                
               g2.draw(shape);
            
        }
}
Здесь я просто хочу чтоб точка вместе с отрезком вращаясь хоть по прямой "прогулялась", вращаться отрезок естественно вращается, однако двигаться с места наотрез отказываеться!!! Подскажите что сделать можно/нужно?
JinAnton вне форума Ответить с цитированием
Старый 16.01.2012, 16:03   #2
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

Ребят ну серьезно помогите, почему координаты точки не меняются при перерисовке фрейма???
JinAnton вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
на графике показать точки и выделить отрезок Наталько Паскаль, Turbo Pascal, PascalABC.NET 0 25.05.2011 21:38
поворот точки вокруг оси NiCola999 Общие вопросы C/C++ 5 13.08.2010 13:19
Вращающийся отрезок - работа с графикой >>arty<< Помощь студентам 5 21.06.2010 16:24
Mногоугольник, вращающийся вокруг заданной точки Sashka Помощь студентам 13 30.01.2008 17:15
Помогите рассчитать положение и движение точки N на отрезку DK Stark[SG!] Помощь студентам 8 14.12.2007 10:08