代码简单,完全是算法的总结和线程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package sun;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
 *
 *@author huyongjian Oracle(Compus Solution Group)
 * @Date  2013-7-22
 * @version 2.0
 * @since JDK1.6(建议)
   Copy Right Information    COMPUS SOLUTION GROUP
   IDE:Eclipse
   class:SolarSystem 太阳系运动轨迹
 */
public class SolarSystem extends Frame{
                                                                          
    double x , x1 = 200,x2 = 200,x3 = 200,x4 = 200,x5 = 200,x6 = 200,x7 = 200,x8 = 200;
    double y , y1 = 200,y2 = 200,y3 = 200,y4 = 200,y5 = 200,y6 = 200,y7 = 200,y8 = 200;
    double t = 0,t1 = 0,t2 = 0,t3 = 0,t4 = 0,t5 = 0,t6 = 0,t7 = 0,t8 = 0;
    private Image offScreenImage = null;
    void loadFrame(){
        this.setSize(900,900);
        this.setLocation(50,50);
        this.setTitle("太阳系");
        this.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        this.setVisible(true);
//      this.setColor.black);
         new PaintThread().start();
    }
    public void update(Graphics g) {
        if(offScreenImage == null)
            offScreenImage = this.createImage(900900);
                                                                              
        Graphics gOff = offScreenImage.getGraphics();
        Color oldColor = gOff.getColor();
        gOff.setColor(Color.GREEN);
        gOff.fillRect(00900900);
        gOff.setColor(oldColor);
        paint(gOff);
        g.drawImage(offScreenImage, 00null);
    }
                                                                          
    Image sun = Toolkit.getDefaultToolkit().getImage("images/sun.jpg");
    Image bg = Toolkit.getDefaultToolkit().getImage("images/bg.jpg");
    Image mercury = Toolkit.getDefaultToolkit().getImage("images/Mercury.jpg");
    Image venus = Toolkit.getDefaultToolkit().getImage("images/Venus.jpg");
    Image earth = Toolkit.getDefaultToolkit().getImage("images/Earth.jpg");
    Image mars = Toolkit.getDefaultToolkit().getImage("images/Mars.jpg");
    Image jupiter = Toolkit.getDefaultToolkit().getImage("images/Jupiter.jpg");
    Image saturn = Toolkit.getDefaultToolkit().getImage("images/Saturn.jpg");
    Image uranus = Toolkit.getDefaultToolkit().getImage("images/Uranus.jpg");
    Image neptune = Toolkit.getDefaultToolkit().getImage("images/Neptune.jpg");
    Image moon = Toolkit.getDefaultToolkit().getImage("images/moon.jpg");
                                                                          
    public void paint(Graphics g){
        g.setColor(Color.blue);
        g.drawImage(bg , 0 0 null);
        g.drawImage(sun , 435 435 null);
        g.drawOval(4014158860);
        g.drawOval(375395140100);
        g.drawOval(335365220160);
        g.drawOval(285335320220);
        g.drawOval(155275580340);
        g.drawOval(120245650400);
        g.drawOval(80210730470);
        g.drawOval(10165870560);
                                                                              
        t1 = t1 + Math.PI / 8.8;         //公转周期为88天
        t2 = t2 + Math.PI / 22.5;
        t3 = t3 + Math.PI / 36.5;
        t = t + Math.PI / 0.1;
        t4 = t4 + Math.PI / 68.7;
        t5 = t5 + Math.PI / 432.9;
        t6 = t6 + Math.PI / 1076.8;
        t7 = t7 + Math.PI / 3066.0;
        t8 = t8 + Math.PI / 6015.2;
                                                                              
        g.drawImage(mercury , (int)x1 ,(int)y1, null);
        x1 = 440 + 44 * Math.cos(t1);
        y1 = 440 + 30 * Math.sin(t1);
        g.drawImage(venus , (int)x2 ,(int)y2, null);
        x2 = 440 + 70 * Math.cos(t2);
        y2 = 440 + 50 * Math.sin(t2);
        g.drawImage(earth , (int)x3 ,(int)y3, null);
        x3 = 440 + 110 * Math.cos(t3);
        y3 = 440 + 80 * Math.sin(t3);
        g.drawImage(moon , (int)x ,(int)y, null);
        x = x3 + 15 * Math.cos(t1);
        y = y3 + 15 * Math.sin(t1);
        g.drawImage(mars , (int)x4 ,(int)y4, null);
        x4 = 440 + 160 * Math.cos(t4);
        y4 = 440 + 110 * Math.sin(t4);
        g.drawImage(jupiter , (int)x5 ,(int)y5, null);
        x5 = 435 + 290 * Math.cos(t5);
        y5 = 435 + 170 * Math.sin(t5);
        g.drawImage(saturn , (int)x6 ,(int)y6, null);
        x6 = 428 + 325 * Math.cos(t6);
        y6 = 428 + 200 * Math.sin(t6);
        g.drawImage(uranus , (int)x7 ,(int)y7, null);
        x7 = 435 + 365 * Math.cos(t7);
        y7 = 435 + 235 * Math.sin(t7);
        g.drawImage(neptune , (int)x8 ,(int)y8, null);
        x8 = 435 + 435 * Math.cos(t8);
        y8 = 435 + 280 * Math.sin(t8);
    }
    public static void main(String[] args){
        SolarSystem ball = new SolarSystem();
        ball.loadFrame();
    }
                                                                          
    private class PaintThread extends Thread{
        public void run(){
            while(true){
                repaint();
                try {
                    Thread.sleep(40);
                catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

141458192.png