使用sin和cos使圆圈在java中以圆圈移动

时间:2013-11-22 07:56:57

标签: java object geometry

我正在创建一个程序,它有一个圆形对象,围绕画布以圆周运动方式移动。我创建了圆圈和渲染类,现在正在进行移动。到目前为止,这是我的代码,遗憾的是它不起作用。我不知道从哪里开始,或者我是否走在正确的轨道上。

import java.util.*;

public class Rotation
{
  public static void main(String[] args)
  {
    int x;
    int y;
    int radius = 30;
    double step = .01;

    Scanner input = new Scanner(System.in);
    Render render = new Render();
    Circle c = new Circle(150,150,radius);

    render.addCircle(c);
    render.draw();
    double angle = 0.0;

   while (angle < step)
   {

     x = (int)(c.getX()+Math.cos(angle*2*(Math.PI))*radius);
    y = (int)(c.getY()+Math.sin(angle*2*(Math.PI))*radius);

    c.setX(x);
    c.setY(y);

    render.redraw();
   }
  }
}

2 个答案:

答案 0 :(得分:1)

好吧,你的while循环错了。 如果你捏造价值

while(angle < step)

成为

while(0 < 0.01)

但这没关系,因为你实际上并没有在任何地方增加角度。也许您应该通过步长增加角度,直到圆圈满(即2 * Math.PI)。

答案 1 :(得分:0)

while(angle < step)实际上是一个死循环。另外,你永远不会使用由Scanner input = new Scanner(System.in);启动的变量输入