我正在创建一个程序,它有一个圆形对象,围绕画布以圆周运动方式移动。我创建了圆圈和渲染类,现在正在进行移动。到目前为止,这是我的代码,遗憾的是它不起作用。我不知道从哪里开始,或者我是否走在正确的轨道上。
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();
}
}
}
答案 0 :(得分:1)
好吧,你的while循环错了。 如果你捏造价值
while(angle < step)
成为
while(0 < 0.01)
但这没关系,因为你实际上并没有在任何地方增加角度。也许您应该通过步长增加角度,直到圆圈满(即2 * Math.PI)。
答案 1 :(得分:0)
while(angle < step)
实际上是一个死循环。另外,你永远不会使用由Scanner input = new Scanner(System.in);
启动的变量输入