Движение обьекта по спирали - Java
Формулировка задачи:
Нарисовал при помощи метода polygon фигуру, как сделать так чтобы она двигалась начиная с центра экрана по спирали?
Решение задачи: «Движение обьекта по спирали»
textual
Листинг программы
package spiral; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JFrame; import javax.swing.JPanel; public class spiral { JFrame frame; Figura figura; private int oneX1[] = {400,420,440}; private int oneY1[] = {432,400,432}; private int oneX2[] = {400,420,440}; private int oneY2[] = {432,464,432}; public static void main(String[] args) { new spiral().go(); } private void go() { frame = new JFrame("Test"); figura = new Figura(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); frame.setSize(800, 800); frame.add(figura); frame.setVisible(true); moveIt(); } class Figura extends JPanel { public void paintComponent(Graphics g) { g.setColor(new Color(0,0,255)); g.fillPolygon(oneX1, oneY1, 3); g.setColor(new Color(0,255,0)); g.fillPolygon(oneX2, oneY2, 3); } } private void moveIt() { int v=0,vx=1; while (true) { for(int i=0;i<3;i++) { oneX1[i]+=vx*Math.cos(10*v); oneX2[i]+=vx*Math.cos(10*v); oneY1[i]+=vx*Math.sin(10*v); oneY2[i]+=vx*Math.sin(10*v); } v++;vx++; if (((oneX1[0]<=0) || (oneX1[0]>=800))||((oneY1[0]<=0) || (oneY1[0]>=800))) { oneX1[0]=400;oneX1[1]=420;oneX1[2]=440; oneY1[0]=432;oneY1[1]=400;oneY1[2]=432; oneX2[0]=400;oneX2[1]=420;oneX2[2]=440; oneY2[0]=432;oneY2[1]=464;oneY2[2]=432; vx=1;v=0;} try { Thread.sleep(10); } catch (Exception e) { e.printStackTrace(); } frame.repaint(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д