2015-07-04 171 views
0

你好,我正在制作一个程序,向你展示太空中不同的行星。 我在窗户的正中央和周围的所有行星都有太阳。 我想要行星绕太阳旋转,但我不知道我该如何做到这一点。请帮帮我。这里就是我画的行星和太阳到屏幕上的代码:Java围绕中心点旋转物体?

public class Solar1 extends BasicSystem { 

private Image img; 

public int px = 300,py = 300,px1 = 200,py1 = 200; 


public Solar1() { 

} 

public void tick() { 

} 

public void render(Graphics g) { 

    ImageIcon i = new ImageIcon("res/bg/bg1.png"); 
    img = i.getImage(); 
    g.drawImage(img, 0,0, null); 

    ImageIcon i2 = new ImageIcon("res/planets/sun.png"); 
    img = i2.getImage(); 
    g.drawImage(img, Comp.size.width/2 - 50, Comp.size.height/2 - 50, null); 

    ImageIcon i12 = new ImageIcon("res/planets/blue.png"); 
    img = i12.getImage(); 
    g.drawImage(img, px,py, null); 

    ImageIcon i1112 = new ImageIcon("res/planets/green.png"); 
    img = i1112.getImage(); 
    g.drawImage(img, px1,py1, null); 

} 

} 
+0

我认为最简单的方法是设计行星轨道。为每个行星分配一个轨道速度。 (为简单起见,以毫秒为单位来完成旋转轨道)。您可以在开始时沿Y轴排列您的所有行星。假设你的渲染方法在一秒内运行了40次,你可以计算每个星球的新位置并相应地渲染它的位置。 – Alp

回答

0
 int i=0; 

     while(true){ 
      planet1.setX(Math.cos(Math.toRadians(i)))*widthOfFrame;   
      planet1.setY(Math.sin(Math.toRadians(i)))*heightOfFrame; 
      i++; 
     } 

... i是迭代次数。您还需要了解如何设置速度,距离中心点的距离等...