如何让圆圈移动?

时间:2014-02-07 13:34:20

标签: java 2d physics geometry

Circle c1 = new Circle(20);
c1.relocate(200,200); //Set X and Y

我想要做的是让圆圈围绕一个看不见的旋转中心移动。怎么能实现呢?

感谢。

编辑:我的三角技能非常差。

1 个答案:

答案 0 :(得分:2)

您可以使用极坐标在圆上使用方程:

circle_x = rot_center_x + radius * cos(angle)
circle_y = rot_center_y + radius * sin(angle)

使用此功能,您将获得新圈子的中心点。然后你只需要增加(逆时针)或减少(顺时针)你的角度,空白屏幕并再次绘制圆圈。

三角函数的角度以弧度为单位,在整圆中有2 * pi弧度。因此,如果您想要角度零度,请输入0。对于90度,请输入pi/2.0。 对于任何其他角度,请使用此转换公式:

angle_rad = pi/180.0 * angle_degrees

如果你想要旋转时间,你必须选择旋转角速度omega。

omega = 2*pi*f

其中f是旋转频率,例如f = 1Hz意味着你的物体将在一秒后旋转整圈。欧米茄以每秒弧度为单位,所以如果你有10欧姆弧度,那么你的物体在一秒钟内会旋转10弧度,在10秒钟内会旋转100弧度。

现在你必须确定添加每一帧动画所需的角度:

ang_inc = omega / fps_avg;
ang += ang_inc;

其中fps_avg是每秒帧数的平均值。